zend-framework2 Démarrer avec zend-framework2

Remarques

Zend Framework 2 (ZF2) est un framework PHP moderne et flexible qui aide les développeurs Web à créer des applications Web de différentes complexités. Le sponsor principal de la société Zend Framework est Zend Technologies, ce qui le rend très solide et stable. Il y a deux améliorations majeures de cette deuxième version par rapport à ZF1. Tout d’abord, une architecture basée sur des modules a été adoptée par défaut sans aucune modification. Cela est pratique lors du développement d’une application Web de grande taille qui nécessite une décomposition en modules. Deuxièmement, ZF2 implémente toutes les fonctionnalités que PHP5.3+ peut offrir en particulier les espaces de noms. Dans les versions précédentes, une classe de contrôleur est nommée comme suit:

class IndexController extends Zend_Controller_Action{}

Cette même classe est réécrite dans ZF2 comme suit:

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

Voici quelques autres fonctionnalités intéressantes de ZF2:

  • Injection de dépendance
  • Gestionnaire d’événements
  • Gestionnaire de services

Un simple Hello World

Dans votre ligne de commande, entrez dans le répertoire dans lequel vous souhaitez créer le projet, puis tapez: composer create-project zendframework/skeleton-application helloWorldTest. Lors de l’installation, il vous sera demandé si vous souhaitez une installation minimale: Disons oui pour le moment, nous ne faisons que tester.

Par souci de simplicité, nous utiliserons le serveur CLI PHP intégré. Depuis la ligne de commande, accédez au répertoire racine de votre projet (helloWorldTest), puis exécutez : php -S 0.0.0.0:8080 -t public/ public/index.php. Maintenant, ouvrez votre navigateur Web et allez à http://localhost/, vous devriez voir la page d’accueil de l’application ZF2 Skeleton.

Si vous le faites, nous allons maintenant configurer une nouvelle page. Dans module/Application/config/module.config.php, vous pouvez voir qu’une route dynamique est déjà configurée pour le sous-dossier de l’application:

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

Définissez une nouvelle action « helloWorldAction() » dans module/Applicaiton/src/Controller/IndexController.php :

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

Enfin, créez le fichier de vue module/Application/view/application/index/hello-world.phtml avec le contenu suivant:

<?phpecho "Hello World !"; 

Maintenant, allez dans http://localhost/ application/hello-world, et dites bonjour à ZF2!

Comment créer une usine

Lorsqu’une classe doit être fournie avec des dépendances dures la meilleure pratique consiste à utiliser un modèle d’injection de constructeur où ces dépendances sont injectées à l’aide d’une usine.

Supposons que MyClass dépend fortement d’une valeur $dependency qui doit être résolue à partir de la configuration de l’application.

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

Pour injecter cette dépendance, une classe d’usine est créée. Cette usine résoudra la dépendance de la configuration et injectera la valeur de configuration lors de la construction de la classe et renverra le résultat:

<?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; }} 

Maintenant que la classe factory a été créée, elle doit être enregistrée dans la configuration du gestionnaire de services dans le fichier de configuration du module module.config.php sous les usines clés. Il est recommandé d’utiliser les mêmes noms pour la classe et l’usine, il est donc facile de les trouver dans l’arborescence des dossiers du projet:

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

Alternativement, les constantes de nom de classe peuvent être utilisées pour les enregistrer:

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

Maintenant, la classe peut être collectée auprès du gestionnaire de services à l’aide de la clé que nous avons utilisée lors de l’enregistrement de l’usine pour cette classe:

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

ou

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

Le gestionnaire de services trouvera, collectera et exécutera l’usine, puis il renverra votre instance de classe avec la dépendance injectée.

Installation ou configuration

Instructions détaillées sur la configuration ou l’installation de Zend Framework 2. Il existe différentes façons d’installer le framework. Voici quelques-uns d’entre eux:

En utilisant la méthode recommandée par le compositeur

En supposant que composer est installé sur la boîte cible.

Pour installer une application MVC squelette, exécutez-la dans votre terminal pour créer un nouveau projet zend framework 2 à l’emplacement spécifié:

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

pour installer manuellement un ZF2 minimal (Zend MVC + sa poignée de dépendances), exécutez dans votre ligne de commande:

composer require zendframework/zend-mvc 

ou pour un ZF2 à part entière (+64 modules):

composer require zendframework/zendframework` 

Veuillez noter que la première option exécute un programme d’installation qui vous fournira une application entièrement fonctionnelle avec la structure habituelle des répertoires d’applications. D’autres options vous permettront de construire l’ensemble de l’application à partir de zéro car elle fournit simplement des modules ZF2 sur lesquels s’appuyer.

Utilisation des sous-modules Git

Exécutez la commande ci-dessous pour cloner zf2 et ses dépendances récursivement à partir de Github:

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

Configuration du serveur HTTP

Une application Web typique nécessite l’exécution d’un service HTTP à l’écoute d’un port dédié (généralement: 80) pour transmettre les demandes entrantes à l’application, traiter et servir la sortie (réponse).

Remarque: Vous pouvez également écrire des applications compatibles avec la console dans Zend Framework 2 sans avoir besoin d’un serveur HTTP.

OPTION 1 – Serveur CLI PHP

Le moyen le plus simple de démarrer si vous utilisez PHP 5.4 ou supérieur est de démarrer le serveur cli PHP interne dans le répertoire racine.

Allez dans le répertoire du projet et exécutez:

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

Cela démarrera le serveur cli intégré sur le port 8080 et le liera à toutes les interfaces réseau.

OPTION 2 – Un serveur HTTP personnalisé

Configurez un serveur virtuel sur le serveur Apache ou Microsoft IIS ou Nginx et transmettez les requêtes HTTP entrantes à l’application.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.