Home Blog Pagina 2

I Package della Settimana – N.28 – 6 Marzo 2017

0

La rubrica I Package della Settimana si propone, ogni Lunedì mattina, di suggerire cinque package per Laravel descrivendoli brevemente. L’obiettivo? Riuscire a dare nuovi spunti ai lettori, far conoscere nuovi tool ed ottimizzare il flusso di lavoro. Durante la pausa caffè.

Vediamo cosa c’è questa settimana!

I Package della Settimana


  • Laravel Github: questo ottimo package di Graham Campbell consente di integrare la propria applicazione con Github, consentendo così di automatizzare quelle che possono essere delle necessità personali (o del proprio team). Sono supportati vari tipi di autenticazione, venendo così incontro ad ogni esigenza;
  • LaraEdit Docker: se si vuole esplorare il mondo Docker, spesso viene consigliato l’uso di LaraDock. LaraEdit Docker è un progetto alternativo, che si pone come obiettivo il mettere a disposizione dell’utente un ambiente di lavoro pronto all’uso in poco tempo. Alcuni componenti non sono stati ancora configurati, ma dovrebbe essere sufficiente guardare la Wiki del progetto per farsi un’idea;
  • Laravel Langman: Langman è un piccolo progetto, molto interessante, che permette di gestire agevolmente i propri file di lingua attraverso un tool da linea di comando. Una delle funzionalità più interessanti riguarda la ricerca delle stringhe mancanti con la possibilità di inserirle al volo direttamente da linea di comando;
  • Failed Job Monitor: questo package fa uso del sistema di notifiche di Laravel per mandarne una non appena un job in coda, per qualche motivo, fallisce. La qualità è quella di un contributor molto attivo come spatie, e le possibilità di personalizzazione sono tantissime;
  • TickeIt Sample App: la scorsa settimana abbiamo parlato di un package molto interessante, TicketIt. Oggi, balping suggerisce un progetto di esempio che fa uso di questo package, per consentire a chiunque voglia lavorarci di avere un riferimento pronto ad essere usato;

E tu, hai qualche package da suggerire? Lasciaci le tue impressioni qui sotto, in un commento, o faccelo sapere sullo Slack di Laravel-Italia!

Ci vediamo la prossima settimana.

I Package della Settimana – N.27 – 27 Febbraio 2017

0

La rubrica I Package della Settimana si propone, ogni Lunedì mattina, di suggerire cinque package per Laravel descrivendoli brevemente. L’obiettivo? Riuscire a dare nuovi spunti ai lettori, far conoscere nuovi tool ed ottimizzare il flusso di lavoro. Durante la pausa caffè.

Vediamo cosa c’è questa settimana!

I Package della Settimana


  • Laravel Log Keeper: con Laravel Log Keeper sarà molto più semplice lavorare sulla rotazione dei log e la loro gestione. Permette infatti di definire delle “location” ed una retention, in modo tale, ad esempio, di spostare i log più vecchi di sette giorni su s3 e cancellare quelli più vecchi di trenta;
  • Ticketit: questo package consente di implementare velocemente un helpdesk system già integrato con lo User e l’authentication system di Laravel. Propone inoltre un pannello di controllo già pronto ad essere usato e la possibilità di visualizzare anche delle statistiche sull’andamento del supporto;
  • Jigsaw: Jigsaw è uno di quei progetti che hanno fatto uso di alcuni componenti di Laravel senza però portarsi dietro tutto il framework. Nello specifico, permette di costruire un sito statico in modo molto semplice, lavorando però con la sintassi di Blade, il template system di Laravel;
  • Collect: le collection di Laravel sono sempre state molto apprezzate dagli sviluppatori. Perchè non usarle anche al di fuori del framework? Questo package serve proprio a questo, rendendo possibile l’uso delle collection anche in altri progetti esterni al framework;
  • Laravel Json Localization Manager: localizzare la propria applicazione Laravel non è complicato, ma ad un certo punto può diventare molto noioso dover decidere (e ricordare) una chiave per ogni elemento da tradurre. Questo package risolve il problema, permettendo di usare le stringhe da tradurre come chiavi;

E tu, hai qualche package da suggerire? Lasciaci le tue impressioni qui sotto, in un commento, o faccelo sapere sullo Slack di Laravel-Italia!

Ci vediamo la prossima settimana.

Domani… a Firenze! (Have a) REST With Laravel!

0

Mentre scrivo queste righe sono molto contento: domani farò qualcosa che non facevo da un po’.

Avrò il piacere, infatti, di tenere un talk su Laravel e la costruzione di REST API, in una delle città più belle d’Italia: Firenze!

I ragazzi di Commit organizzano, periodicamente, talk e workshop gratuiti su svariati temi. Stavolta hanno scelto Laravel!

L’evento sarà totalmente gratuito, ed aperto a tutti. Per tutti i dettagli, vi rimando alla pagina dell’evento su EventBrite.

Se volete, vi aspetto lì 🙂

I Package della Settimana – N.26 – 20 Febbraio 2017

0

La rubrica I Package della Settimana si propone, ogni Lunedì mattina, di suggerire cinque package per Laravel descrivendoli brevemente. L’obiettivo? Riuscire a dare nuovi spunti ai lettori, far conoscere nuovi tool ed ottimizzare il flusso di lavoro. Durante la pausa caffè.

Vediamo cosa c’è questa settimana!

I Package della Settimana


  • Mongolid: questo package offre un wrapper per le API necessarie ad interfacciarsi a MongoDB. Un’alternativa al più conosciuto progetto offerto da jessengers, ma può essere interessante conoscere un altro punto di vista;
  • Invoice Ninja: Invoice Ninja è un interessantissimo servizio (che è possibile usare sia in versione Hosted che Self-Hosted) che permette di offrire ai propri utenti tutte le funzionalità legate ai pagamenti e alla fatturazione. Un’ottima occasione per studiare com’è fatto un buon progetto;
  • Laravel Cookie Consent: da Spatie, un altro package dedicato ad un task decisamente noioso… adeguare il proprio sito alla Cookie Law! Semplice da configurare, come da tradizione, implementa al volo un dialog da mostrare ai propri utenti e diventare compliant il prima possibile;
  • Laravel Feed: altro package di Spatie, questo “Laravel Feed” consente di generare facilmente dei feed rss per la propria applicazione. La configurazione è semplicissima, e richiede pochissimi accorgimenti. Da provare!
  • Laravel Yaml Translation: se si è nostalgici di Symfony, o si vuole provare un modo diverso di concepire i file di localizzazione per la nostra applicazione, questo package consente di usare i file Yaml per la specifica dei file di lingua;

E tu, hai qualche package da suggerire? Lasciaci le tue impressioni qui sotto, in un commento, o faccelo sapere sullo Slack di Laravel-Italia!

Ci vediamo la prossima settimana.

I Package della Settimana – N.25 – 13 Febbraio 2017

0

La rubrica I Package della Settimana si propone, ogni Lunedì mattina, di suggerire cinque package per Laravel descrivendoli brevemente. L’obiettivo? Riuscire a dare nuovi spunti ai lettori, far conoscere nuovi tool ed ottimizzare il flusso di lavoro. Durante la pausa caffè.

Vediamo cosa c’è questa settimana!

I Package della Settimana


  • OCR Space: OCR.space è un servizio gratuito che espone delle API da usare per effettuare l’optical character recognition nelle proprie applicazioni. Questo comodissimo package, di jfuentestgn, ne mette a disposizione un bridge per facilitare l’integrazione;
  • Avatar: questo package molto simpatico consente di generare, al volo, un’immagine da usare come avatar per tutti gli utenti della propria applicazione che non ne hanno ancora caricata una. L’immagine è composta dalle iniziali del nome dell’utente, ma il comportamento può essere personalizzato in vari modi;
  • Google Cloud Flysystem Adapter: bisogno di usare Google Cloud nella propria applicazione? Nessun problema: questo comodo package mette a disposizione un adapter per Flysystem, il package che si occupa di gestire tutto ciò che concerne il filesystem in Laravel!
  • Laravel Partial Cache: ed ecco un package davvero interessante. Partial Cache, come il nome suggerisce, mette a disposizione una direttiva che ci permette di mettere in cache soltanto alcune “porzioni” di una view. Molto utile in caso di progetti molto grandi, che hanno bisogno di personalizzazioni specifiche sotto questo punto di vista per ottimizzare le performance;
  • Laravel Little Gatekeeper: Little Gatekeeper è un piccolo package che mette a disposizione dello sviluppatore un sistema di protezione “universale”. Se attivato, ogni route protetta dal middleware del package sarà accessibile solo dopo aver inserito l’username e la password specificata nel file di configurazione;

E tu, hai qualche package da suggerire? Lasciaci le tue impressioni qui sotto, in un commento, o faccelo sapere sullo Slack di Laravel-Italia!

Ci vediamo la prossima settimana.

I Package della Settimana – N.24 – 30 Gennaio 2017

0

La rubrica I Package della Settimana si propone, ogni Lunedì mattina, di suggerire cinque package per Laravel descrivendoli brevemente. L’obiettivo? Riuscire a dare nuovi spunti ai lettori, far conoscere nuovi tool ed ottimizzare il flusso di lavoro. Durante la pausa caffè.

Vediamo cosa c’è questa settimana!

I Package della Settimana


  • Swaggervel: mai usato Swagger? Si tratta di un’interessate progetto interamente dedicato alla costruzione di API. Più precisamente si definisce un “framework” per costruire API, un insieme di pratiche e tool pronti all’uso. Questo package si offre di fare da “ponte” tra Laravel e Swagger;
  • MongoDB MediaLibrary: qualche tempo fa mi è capitato di parlare di Laravel Media Library. Questo package offre le stesse identiche funzionalità, facendo però uso di MongoDB. Potrebbe far storcere il naso a qualcuno (usare il driver Eloquent di MongoDB è un’altra soluzione, più pulita), ma lo sviluppatore ha pensato di voler provare anche questa strada;
  • Plug: questo package non ha uno scopo preciso. Si occupa, infatti, di raccogliere svariati trait che possono offrire ai nostri model delle piccole aggiunte e funzionalità piuttosto interessanti. Una di queste ad esempio riguarda l’aggiunta di BelongsToThrough, un’inversa per HasManyThrough, oppure l’uso automatico degli UUID nei model. Da provare!
  • Laravel Uptime Monitor: come il nome suggerisce, questo progetto è un ottimo monitor da usare per tenere sotto controllo le proprie applicazioni. Il sito va giù? Arriva una notifica. Torna su? Stessa cosa. E non solo, visto che consente, ad esempio, di tenere traccia dei certificati SSL in scadenza;
  • Twig Bridge: Twig Bridge consente di integrare comodamente il famoso sistema di templating con il nostro framework preferito. Molto utile soprattutto a chi viene da Symfony, e non vuole staccarsi da alcune vecchie abitudini. D’altronde, è anche questione di gusti personali!

E tu, hai qualche package da suggerire? Lasciaci le tue impressioni qui sotto, in un commento, o faccelo sapere sullo Slack di Laravel-Italia!

Ci vediamo la prossima settimana.

Laravel Cafè #7 – Laravel Notifications

0


Benvenuto al Laravel Cafè! Ogni settimana proporremo un nuovo argomento sul mondo Laravel, quindi trova un posto libero, prendi un caffè e condividi le tue opinioni con la comunità! L’idea è di creare un punto di discussione. Se hai qualche perplessità sull’argomento trattato, leggi fino alla fine e fai una domanda usando il forum! Cercheremo di risponderci a vicenda e di aiutarci, ed il confronto ci farà crescere tutti un po’ di più.

Di mercoledì in mercoledì parleremo di qualcosa di diverso, quindi tornaci a trovare! Potresti dare una mano a qualcuno in difficoltà, o ricevere tu un aiuto in caso di problemi! Dai, siediti, il primo caffè lo offriamo noi.

L’Argomento

A partire dalla versione 5.3 di Laravel, è stato implementato un sistema di gestione delle notifiche di cui non si è molto discusso nei vari canali di Laravel Italia, ma che approfondiamo oggi nella nostra consueta pausa caffè. Il primo consiglio è sempre quello di partire dalla documentazione ufficiale, la quale fornisce una visione dettagliata di quanto messo a disposizione dal framework. Nel perfetto stile Laravel le funzioni sono molto semplici e intuitive e dato il grosso quantitativo di automazioni per la gestione delle notifiche, si può creare un sistema base, caratterizzato da un’alta scalabilità, in poco tempo.

Ancora in piedi? Accomodati, ordina un caffè ed esploriamo sempre più nel dettaglio quali sono i servizi messi a disposizione, le principali caratteristiche di una notifica e come implementare il tutto con un po’ di codice d’esempio.

The Notifiable Trait

Prima di capire come creare ed inviare una notifica, approfondiamo prima il mezzo attraverso la notifica viene elaborata. Qualunque modello che implementi il trait IlluminateNotificationsNotifiable può essere utilizzato come oggetto adibito alla ricezione di notifiche attraverso uno o più canali messi a disposizione dal framework. Allo stesso modo può essere utilizata la facade Notification per, ad esempio, inviare ad una collezione di oggetti una notifica via mail o sms. Se esploriamo a fondo il codice del trait, vedremo che mette a disposizione della classe i metodi per recuperare le notifiche relative a quel modello e, a seconda del canale scelto, recuperare le informazioni necessarie all’invio.

Il modello AppUser implementa di default il trait IlluminateNotificationsNotifiable e lo useremo, senza effettuare modifiche, per sviluppare l’esempio finale.

Notifications

La creazione di una notifica, può essere comodamente eseguita attraverso il comando php artisan make:notification, il quale crea un oggetto notifica all’interno della cartella app/Notifications (a sua volta automaticamente generata). La struttura anche qui è molto intuitiva e presenta:
– Un costruttore per una creazione più personalizzata dell’oggetto notifica.
– Un metodo via() che definisce un array contenente i canali attraverso i quali la notifica verrà diffusa.
– Tre possibili metodi definibili o modificabili a seconda delle necessità:
toMail(): ritorna un oggetto IlluminateNotificationsMessagesMailMessage che può essere formattato a seconda delle necessità, come al tempo stesso la sua view di riferimento può essere customizzata attraverso il comando php artisan vendor:publish --tag=laravel-notifications.
toArray(): utilizzato sia per restituire la notifica in formato JSON che per salvarla all’interno del database.
toDatabase(): da implementare nel caso in cui il salvataggio della notifica sul database richieda campi diversi da quelli ritornati in JSON.

Guida all’uso

Se hai avuto modo di confrontare quanto visto fino ad ora con la documentazione per approfondire l’argomento, avrai notato il dettaglio sui vari canali utilizzabili e i metodi che implementano. Nell’ordine:
– Mail
– Database
– Broadcast
– SMS
– Slack

Come ho anticipato la documentazione è molto dettagliata ed esaustiva, per questo ritengo più opportuno specificare delle linee guida per creare un sistema di notifica efficente, valutando le possibili alternative sui canali da utilizzare a seconda delle esigenze.

Il tutto verrà completato dalla creazione di un esempio pratico, una mini applicazione Laravel che implementa un sistema di gestione della notifica di avvenuta modifica della password utente.

Mail

Penso il canale più semplice e immediato. In pochi minuti si è in grado di gestire una notifica via mail, sia come logica di business che come view finale, penso sia particolarmente indicata come alternativa alle classiche mail riepilogative o per far compiere azioni rapide ad un utente (ad esempio la conferma di registrazione ad una promozione).

Database

Secondo me questo canale è abbastanza fondamentale se si vuole tenere traccia sia dello storico delle notifiche che delle azioni compiute su di esse (vedi dettaglio documentazione markAsRead()).

Broadcast, SMS, Slack

Le ciliegine sulla torta. Magari più laboriose, richiedono test più accurati (o nel caso degli SMS l’attivazione di un servizio di parti terze), ma a livello di interfaccia utente il risultato finale è sicuramente il più interessante, soprattutto se si è appassionati di VueJs o SocketIO.

L’esempio

/*
* TO DO
*/

E Voi?

/*
* CONCLUSIONE
*/

I Package della Settimana – N.23 – 23 Gennaio 2017

0

La rubrica I Package della Settimana si propone, ogni Lunedì mattina, di suggerire cinque package per Laravel descrivendoli brevemente. L’obiettivo? Riuscire a dare nuovi spunti ai lettori, far conoscere nuovi tool ed ottimizzare il flusso di lavoro. Durante la pausa caffè.

Vediamo cosa c’è questa settimana!

I Package della Settimana


  • Laravel Auditing: questo package consente di registrare tutte le modifiche che vengono effettuate ad un model. Basta aggiungere un semplice trait, e tutto il resto viene fatto automaticamente. La documentazione, raggiungibile sul sito del progetto, è completa e spiega nel dettaglio come sfruttare tutto al meglio. La sezione più avanzata delle doc infine spiega come personalizzare il flusso stesso del package, per adattarlo alle proprie esigenze;
  • Laravel Packager: Laravel Packager è un package che… aiuta a creare altri package! Non è un gioco di parole, perchè in effetti si occupa di raccogliere tutta una serie di utility molto comode se ci si vuole cimentare nello sviluppo di un package per Laravel. Dallo scaffolding al lavoro con git, passando per funzionalità dedicate al testing ed uno skelton di base come quello della league of extraordinary packages. Insomma, promette bene;
  • Closure Table: Closure Table è un package abbastanza particolare, che consente di implementare agevolmente tutto quello che serve a gestire entità che prevedono più livelli, in modo gerarchico. Un esempio? Le pagine di un CMS, che possono avere sotto pagine, sotto pagine di sotto pagine e così via. Closure Table mette a disposizione una serie di metodi ed utility per accedere agli elementi “fratelli”, a “genitori”, “figli” e così via;
  • Instagram: uno di quei package il cui nome non brilla per originalità, ma che lascia ben poco spazio alla fantasia. Questo piccolo wrapper consente di effettuare alcune operazioni di base su un Instagram feed, come l’accesso alle foto pubblicate. Tutto quello che bisogna fare per iniziarci a lavorare è creare un’instanza della classe Instagram e via!
  • Collection Macros: Laravel Collection Macros è un package che mette a disposizione dello sviluppatore una serie di metodi ed helper dedicati alle collection. Alcuni di questi helper sono delle vere e proprie piccole perle, vale la pena guardarle. Tra l’altro, il marchio spatie è come al solito sinonimo di garanzia;

E tu, hai qualche package da suggerire? Lasciaci le tue impressioni qui sotto, in un commento, o faccelo sapere sullo Slack di Laravel-Italia!

Ci vediamo la prossima settimana.

I Package della Settimana – N.22 – 16 Gennaio 2017

0

La rubrica I Package della Settimana si propone, ogni Lunedì mattina, di suggerire cinque package per Laravel descrivendoli brevemente. L’obiettivo? Riuscire a dare nuovi spunti ai lettori, far conoscere nuovi tool ed ottimizzare il flusso di lavoro. Durante la pausa caffè.

Vediamo cosa c’è questa settimana!

I Package della Settimana


  • Corcel: bisogno di integrare Laravel con WordPress? No problem! Questo package offre un bridge piuttosto completo e solido per lavorare con i dati dell’installazione WordPress a cui ci si vuole “agganciare”. Basterà creare degli appositi model per gli oggetti di cui si ha bisogno e… nulla di più!
  • Telegram Bot SDK: se c’è una parola che ormai si sente tutti i giorni, nel nostro settore, è sicuramente “bot”. Non scordiamoci che Telegram ha una delle piattaforme più interessanti, sotto questo punto di vista. Questo package offre la possibilità di progettarne uno in maniera decisamente agevole… con Laravel!
  • Laravel CDN Assets Manager: questo package, decisamente singolare, offre la possibilità di caricare su CDN i nostri asset con un semplice comando Artisan. Il file readme.md del repository spiega a dovere come installarlo e configurarlo per poter lavorarci su Amazon Web Services;
  • Laravel Response Cache: questo interessante progetto di Spatie permette di mettere in cache un’intera risposta. In alcuni casi può essere molto utile, può far risparmiare tanta potenza di calcolo da poter usare in maniera più utile. Insomma, un altro package interessante targato Spatie!
  • Robots: questo piccolo e semplice progetto consente di generare, passando da Laravel, il file robots.txt per il nostro progetto. Non è recentissimo, ma potrebbe risultare utile per tutti gli utenti più pigri a cui piace far passare tutto dal framework, magari con un comando artisan da avviare per coordinare tutto;

E tu, hai qualche package da suggerire? Lasciaci le tue impressioni qui sotto, in un commento, o faccelo sapere sullo Slack di Laravel-Italia!

Ci vediamo la prossima settimana.

I Package della Settimana – N.21 – 9 Gennaio 2017

0

La rubrica I Package della Settimana si propone, ogni Lunedì mattina, di suggerire cinque package per Laravel descrivendoli brevemente. L’obiettivo? Riuscire a dare nuovi spunti ai lettori, far conoscere nuovi tool ed ottimizzare il flusso di lavoro. Durante la pausa caffè.

Vediamo cosa c’è questa settimana, per ricominciare l’anno in bellezza!

I Package della Settimana


  • PDF Laravel 5: iniziamo dalle cose leggere. Questo package consente di esportare, comodamente, le view delle propria applicazione dando la possibilità di renderizzarle come PDF. Viene assicurato il supporto al CSS, per una maggiore scelta in termini di personalizzazione. Il rendering può essere fatto al volo nel browser, o può essere scelto un download forzato;
  • Badger: questo package decisamente singolare permette di generare, attraverso una comoda Facade, i badge che generalmente possiamo trovare nel file readme di un qualsiasi progetto open-source, magari su GitHub. Consente la scelta del testo da inserire al suo interno, del colore e addirittura dello stile del badge;
  • Laravel AWS Worker: questo package si offre di risolvere un problema che potrebbe affliggere chi usa AWS Beanstalk per la propria applicazione. Infatti, sul servizio Amazon non è possibile usare un supervisor e non è possibile modificare il file cron, approccio consigliato dalla documentazione di Laravel. Laravel AWS Worker offre un approccio alternativo ed altamente configurabile;
  • Laravel OpenGraph Builder: può venir fuori, costruendo la nostra applicazione, la necessità di rendere il più semplice possibile la condivisione sui social dei nostri contenuti. In tal caso, questo package può fare al caso nostro: OpenGraph Builder permette di configurare e costruire agevolmente tutti i metadati, ottimizzando le nostre risorse, pronte ora ad essere condivise;
  • Laravel Zendesk API Client: se c’è qualcuno che usa Zendesk per fare customer support e vuole automatizzare un po’ dei task più comuni, questo package è la soluzione! Permette di gestire i ticket, catalogandoli, aggiornandoli, facendo ricerche e anche altro ancora;

E tu, hai qualche package da suggerire? Lasciaci le tue impressioni qui sotto, in un commento, o faccelo sapere sullo Slack di Laravel-Italia!

Ci vediamo la prossima settimana.