zend-framework2 Introduzione a zend-framework2

Osservazioni

Zend Framework 2 (ZF2) è un framework PHP moderno e flessibile che aiuta gli sviluppatori web a creare applicazioni web di diverse complessità. Il principale sponsor della società Zend Framework è Zend Technologies, che lo rende molto forte e stabile. Ci sono due miglioramenti principali di questa seconda versione su ZF1. Innanzitutto, un’architettura basata su moduli è stata adottata di default senza alcuna modifica. Ciò è utile quando si sviluppa un’applicazione Web di grandi dimensioni che richiede una decomposizione ai moduli. In secondo luogo, ZF2 implementa tutte le caratteristiche che PHP5.3 + può offrire in particolare gli spazi dei nomi. Nelle versioni precedenti, una classe controller è denominata come segue:

class IndexController extends Zend_Controller_Action{}

Questa stessa classe viene riscritta in ZF2 come segue:

namespace Application\Controller;use Zend\Mvc\Controller\AbstractActionController;class IndexController extends AbstractActionController{}

Di seguito sono riportate alcune altre interessanti caratteristiche di ZF2:

  • Dependency Injection
  • EventManager
  • ServiceManager

Un semplice Hello World

Nella riga di comando, entra nella directory in cui vuoi creare il progetto, quindi digita: composer create-project zendframework/skeleton-application helloWorldTest. Durante l’installazione, ti verrà chiesto se vuoi un’installazione minima: diciamo di sì per il momento, stiamo solo testando.

Per semplicità, useremo il server CLI PHP integrato. Dalla riga di comando, entra nella directory principale del tuo progetto (helloWorldTest ), quindi esegui : php -S 0.0.0.0:8080 -t public/ public/index.php . Ora, apri il tuo browser web e vai a http://localhost/, dovresti vedere la pagina di benvenuto dell’applicazione Skeleton ZF2.

Se lo fai, ora configureremo una nuova pagina. In module/Application/config/module.config.php si può vedere che un percorso dinamico è già configurato per l’applicazione sottocartella:

return , 'application' => ', 'defaults' => , ], ], ], ], 

Impostare una nuova azione “helloWorldAction() ” in module/Applicaiton/src/Controller/IndexController.php :

class IndexController extends AbstractActionController{ public function indexAction() { ... } public function helloWorldAction() { return new ViewModel(); }} 

Infine, creare il file di visualizzazione module/Application/view/application/index/hello-world.phtml con il seguente contenuto:

<?phpecho "Hello World !"; 

Ora, andare a http://localhost/application/hello-world, e dire ciao a ZF2 !

Come creare una factory

Quando una classe deve essere fornita con dipendenze rigide la migliore pratica è utilizzare un modello di iniezione del costruttore in cui tali dipendenze vengono iniettate utilizzando una factory.

Supponiamo che MyClass sia fortemente dipendente da un valore $dependency che deve essere risolto dalla configurazione dell’applicazione.

<?phpnamespace Application\Folder;use Zend\ServiceManager\FactoryInterface;use Zend\ServiceManager\ServiceLocatorInterface;class MyClass{ protected $dependency; public function __construct($dependency) { $this->dependency = $dependency; }} 

Per iniettare questa dipendenza viene creata una classe factory. Questa fabbrica risolverà la dipendenza dalla configurazione e inietterà il valore di configurazione sulla costruzione della classe e restituirà il risultato:

<?phpnamespace Application\Factory;use Zend\ServiceManager\FactoryInterface;use Zend\ServiceManager\ServiceLocatorInterface;class MyClassFactory implements FactoryInterface{ public function createService(ServiceLocatorInterface $serviceLocator) { $config = $servicelocator->get('Config'); $dependency = $config; $myClass = new MyClass($dependency); return $myClass; }} 

Ora che la classe factory è stata creata, deve essere registrata all’interno della configurazione di Service manager nel file di configurazione del modulo module.config.php sotto le fabbriche chiave. È buona norma utilizzare gli stessi nomi sia per la classe che per la fabbrica quindi è facile trovarli nell’albero delle cartelle del progetto:

<?phpnamespace Application;return array( //... 'service_manager' => ], //...); 

In alternativa è possibile utilizzare le costanti del nome della classe per registrarle:

<?phpnamespace Application;use Application\Folder\MyClass;use Application\Factory\MyClassFactory;return array( //... 'service_manager' => ], //...); 

Ora la classe può essere raccolta presso il service manager utilizzando la chiave che abbiamo usato al momento della registrazione della fabbrica per quella classe:

 $serviceManager->get('Application\Folder\MyClass'); 

o

 $serviceManager->get(MyClass::class); 

Il gestore del servizio troverà, raccoglierà ed eseguirà la fabbrica e quindi restituirà l’istanza della classe con la dipendenza iniettata.

Installazione o configurazione

Istruzioni dettagliate su come configurare o installare Zend Framework 2. Esistono vari modi per installare il framework. Di seguito sono riportati alcuni di essi:

Utilizzando il modo consigliato dal compositore

Supponendo che composer sia installato nella casella di destinazione.

Per installare uno scheletro di un’applicazione MVC, esegui nel terminale per creare un nuovo zend framework 2 progetto nella posizione specificata:

php composer.phar create-project -sdev \ --repository-url="https://packages.zendframework.com" \ zendframework/skeleton-application path/to/install 

per installare manualmente un minimo di ZF2 (MVC Zend + la sua manciata di dipendenze), eseguire nella riga di comando:

composer require zendframework/zend-mvc 

o per un vero e proprio ZF2 (+64 moduli):

composer require zendframework/zendframework` 

Si prega di notare che la prima opzione esegue un programma di installazione che vi fornirà una cucina completamente functionnal applicazione con il consueto le cartelle di applicazione struttura. Altre opzioni ti permetteranno di costruire l’intera applicazione da zero in quanto fornisce semplicemente moduli ZF2 su cui costruire.

Usando i sottomoduli Git

Esegui il comando qui sotto per clonare zf2 e le sue dipendenze ricorsivamente da Github:

git clone git://github.com/zendframework/ZendSkeletonApplication.git --recursive 

HTTP Server Setup

Una tipica applicazione web richiede un esecuzione di un servizio HTTP in ascolto di una porta dedicata (di solito :80) per passare le richieste in arrivo per l’applicazione, elaborare e servire l’uscita (risposta) indietro.

Nota: È inoltre possibile scrivere applicazioni console-aware in Zend Framework 2 senza la necessità di un server HTTP.

OPZIONE 1 – PHP CLI Server

Il modo più semplice per iniziare se si utilizza PHP 5.4 o superiore è quello di avviare il PHP cli-server interno nella directory principale.

Vai alla directory del progetto ed esegui:

php -S 0.0.0.0:8080 -t public/ public/index.php`. 

Questo avvierà il cli-server incorporato sulla porta 8080 e lo collegherà a tutte le interfacce di rete.

OPZIONE 2-Un server HTTP personalizzato

Configura un virtualhost su Apache o Microsoft IIS Server o Nginx e passa le richieste HTTP in entrata all’applicazione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.