Benvenuti nel nostro corso sul linguaggio Php7. Nei video seguenti vi offriamo una parte del nostro corso per farvi valutare se acquistarlo o meno su una piattaforma esterna d
Corso php7
Feb/01/2017 Video corso Html5
 Apprendi le basi dell'html5 e le sue novità. Imparerai in questo minicorso i nuovi tags semantici, le novità nei forms, ed infine i canvas, drag and drop e le api google. 
Video corso Html5
Nov/14/2016 Video corso Jquery: Impara le basi ed estendi le tue skills in Javascript
Conosci le basi di javascript e vuoi scrivere meno codice ed essere produttivo?. Allora non ti resta che imparare le basi della libreria Jquery. Si tratta di una libreria java
Video corso Jquery: Impara le basi ed estendi le tue skills in Javascript
Ott/21/2016 Video Corso sul CSS 3
Il corso tratta dei fogli di stili a cascata cioè il CSS. Si tratta di un linguaggio che ci consente di stilizzare le nostre pagine web e quindi di estendere le funzionalità d
Video Corso sul CSS 3
Ott/19/2016 Tutorials Drupal 8
In questo video analizzeremo passo passo tutte le fasi per la creazione e pubblicazione on-line di un sito web costruito con drupal 8.
Tutorials Drupal 8
Lug/01/2016 I nostri progetti su git
Guarda i nostri progetti su github:

I nostri progetti su git

I nostri progetti su git
Giu/27/2017 Video Corso Laravel
Impara a sviluppare applicazioni con il framework Laravel. Ti insegneremo a utilizzare il framework per creare rapidamente applicazioni web modulari e facilmente manutenibili.
Video Corso Laravel
Ago/01/2016 Corso php7
27 SP_GIUGNO 2017

Ciclo di vita di Laravel

Tutte le richieste di una applicazione Laravel vengono inoltrate al file public/index.php. Sono dirette a questo file dal webserver (Apache oppure Nginx). Il file index.php è semplicemente un punto di inizio da cui caricare tutto Laravel .Questo file carica l'autoloader definito da Composer e poi restituisce una istanza dell'applicazione Laravel dallo script bootstrap/app.php. La prima azione eseguita da Laravel è creare una istanza dell'applicazione service container.

HTTP/Console Kernels

Successivamente, la richiesta in ingresso viene inviata al kernel http o alla console kernel, dipende dal tipo di richiesta in arrivo. Questi due kernels fungono come posizione centrale da cui partono le richieste. Il kernel HTTP si trova in app/HTTP/Kernel.php. Esso estende la classe Illuminate\Foundation\Http\Kernel che definisce un array di bootstrappers che si avvia prima che la richiesta sia partita.

Questi bootstrappers controllano i log di errore, le configurazioni dell'ambiente, ed eseguono qualunque altro task necessario prima che una richiesta possa essere inviata all'applicazione Laravel. Il kernel HTTP definisce anche una lista di middleware (filtri) che ogni richiesta deve superare prima che possa essere gestita dall'applicazione. Questi filtri gestiscono la lettura e scrittura della sessione HTTP, e determinano se l'applicazione è in uno stato di manutenzione, verificano la cifratura CSRF token ed altro ancora. Il kernel HTTP riceve una richiesta Request e restituisce una risposta Response. Possiamo pensare al Kernel come ad una scatola nera che racchiude tutta la nostra applicazione. Ad ogni richiesta HTTP segue un Response HTTP.

Service Provider

Una delle azioni di bootstraping più importanti del Kernel è il caricamento dei service provider della tua applicazione. Tutti questi service provider (fornitori di servizi) sono configurati in config/app.php nella sezione array providers. Come prima cosa viene invocato il metodo register su ogni provider, poi una volta che i providers sono stati registrati viene richiamato il metodo boot. I service providers sono responsabili del bootstrapping di vari componenti del framework, come databases, convalide, e i componenti di routing.

Dispatch Request

Una volta che è avvenuto il bootstrapping dell'applicazione e tutti i service providers sono stati registrati, la Request sarà gestita dal routee e sarà inviata ad una route o ad un controller. 

 

La struttura di una applicazione

 

  • La cartella Root

La cartella principale è app e contiene il codice core della applicazione.La cartella bootstrap contiene pochi files che bootstrappano il framework e configurano l'autoloading, così come la cartella cache contiene pochi file che servono al bootstrapping dell'ottimizzazione della performance. La cartella config contiene tutti i files di configurazione dell'applicazione. La cartella database contiene le nostre migrazioni e i seeds. La cartella public contiene tutti gli assets(immagini, javascript, css). La cartella resources contiene le views, (LESS, SASS...) e i files di localizzazione. La cartella storage contiene i file Blade compilati, i file delle sessioni, i file caches, e tutti i files generati da Laravel. La cartella tests contiene i nostri test , mentre la cartella vendor contiene tutte le dipendenze gestite da Composer.

  • La cartella app

Questa cartella si trova nel namespace App che è caricato in automatico da Composer e contiene varie cartelle aggiuntive come Console, Http e Providers. La cartella Console contiene tutti i comandi artisan, mentre la cartella Http contiene i nostri controllers, middleware e requests. La cartella Events contiene gli eventi che avvisano l'applicazione che un'azione è richiesta. La cartella Exceptions gestisce le eccezioni che vengono sollevate per ogni errore. La cartella Jobs contiene  tutti i compiti che dovranno essere eseguiti e posti in uno stato di queue. La cartella Listeners contiene le classi che gestiscono gli eventi, cioè rispondono ad una azione da compiersi al verificarsi di un evento. La cartella Policies contiene le classi per le politiche di autorizzazione. In pratica tutti i permessi necessari perché un utente possa eseguire un'azione.

 

I service provider

I service provider sono il luogo centrale di tutto il boostrapping delle applicazioni Laravel. Tutte le vostre applicazioni Laravel vengono bootstrappate attraverso i service provider. Cosa vuol dire Bootstrappate?. In generale significa registrare le cose, come i listener degli eventi, i filtri, ed anche le routes. Se aprite il file config/app.php esso contiene un array provider che racchiude tutti i service provider caricati in automatico da Laravel. Molti di essi sono definiti deferred, cioè vengono caricati solo su richiesta.

  • Scrivere un service provider

Tutti i service provider estendono la classe Illuminate\Support\ServiceProvider. Si tratta di una classe astratta che richiede un solo metodo definito register. All'interno di esso non bisogna registrare nessun listener di un evento, nessuna route. Con il seguente comando artisan possiamo creare un service provider:

php artisan make:provider RiakServiceProvider
  • Il metodo register

Ecco il file del service provider appena creato:

<?php 

namespace App\Providers; 

use Riak\Connection;

use Illuminate\Support\ServiceProvider;
 

class RiakServiceProvider extends ServiceProvider

{

    /**

     * Register bindings in the container.

     *

     * @return void

     */

    public function register()

    {

        $this->app->singleton(Connection::class, function ($app) {

            return new Connection(config('riak'));

        });

    }

}

 Questo provider definisce un metodo register e ne fa uso per implementare una connessione riak nel service container.

 

  • Il metodo boot

Quindi che succede se dobbiamo registrare una view composer nel nostro service provider? Può essere fatto con un metodo boot. Questo metodo viene richiamato dopo che tutti gli altri service provider sono stati registrati.

 

<?php 

namespace App\Providers; 

use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;

use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; 

class EventServiceProvider extends ServiceProvider
{

    // Other Service Provider Properties... 

    /**

     * Register any other events for your application.

     *

     * @param  \Illuminate\Contracts\Events\Dispatcher  $events

     * @return void

     */

    public function boot(DispatcherContract $events)

    {

        parent::boot($events);

 

        view()->composer('view', function () {

            //

        });

    }

}
  •  Registrare i provider

Tutti i provider sono registrati nel file config/app.php. Questo file contiene un array definito providers che elenca tutti i provider registrati. Per registrare un provider aggiungetelo semplicemente all'array providers così:

'providers' => [

    // Other Service Providers

 

    App\Providers\AppServiceProvider::class,

],

 

Service container

Il service container è un ottimo strumento per gestire le dipendenze delle classi ed eseguire le injection delle dipendenze. Le injection delle dipendenze significano che le dipendenze sono iniettate nelle classi grazie al costruttore, oppure in alcuni casi con il metodo setter. Ecco un esempio:

<?php 

namespace App\Jobs; 

use App\User;

use Illuminate\Contracts\Mail\Mailer;

use Illuminate\Contracts\Bus\SelfHandling; 

class PurchasePodcast implements SelfHandling

{

    /**

     * The mailer implementation.

     */

    protected $mailer; 

    /**

     * Create a new instance.

     *

     * @param  Mailer  $mailer

     * @return void

     */

    public function __construct(Mailer $mailer)

    {
        $this->mailer = $mailer;

    }
 

    /**

     * Purchase a podcast.

     *

     * @return void

     */

    public function handle()

    {

        //

    }

}

 In questo esempio il job definito PurchasePodcast necessita di inviare e-mail quando un podcast è comprato. Quindi dovremo iniettare un servizio che è capace di inviare e-mail. Dal momento che il servizio è iniettato possiamo scambiarlo con un'altra implementazione.

  • Binding

All'interno di un service provider noi spesso abbiamo accesso al container con questo metodo:

$this->app

 Noi possiamo registrare un binding usando il metodo bind, passando la classe oppure l'interfaccia con cui lo vogliamo registrare usando poi una closure che restituisce un'istanza della classe.

$this->app->bind('HelpSpot\API', function ($app) {

    return new HelpSpot\API($app['HttpClient']);

});
  •  Container events

Il service container accende un evento ogni volta che risolve un oggetto. Puoi ascoltare questo evento (listen) usando il metodo resolving:

 

this->app->resolving(function ($object, $app) {

    // Called when container resolves object of any type...

}); 

$this->app->resolving(FooBar::class, function (FooBar $fooBar, $app) {

    // Called when container resolves objects of type "FooBar"...

});
Pubblicato in Laravel

NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo