Zend Framework
| Composants basiques |
|
|
|
| Écrit par Administrator |
| Mercredi, 25 Novembre 2009 22:39 |
Composants de base :le principe même des composants présentés ci dessous c'est de ne pas nécessiter d'architecture particulières. Il peuvent être utiliser tel que dans vos sources Php. Tout au long de cet exercice nous allons procéder l'implémentation des composants en deux étapes : 1 : une partie test du composant de manière indépendantes 2: une partie intégration à notre exemple.
Zend_LoaderZend loader permet le chargement des classes du répertoire library. il est utilisé à la place de include et require traditionnels Zend loader peut être utiliser de deux façons:
L'autoload est le plus utilisé et affecte les temps de réponses des serveurs de manière de moins en moins significative au fur et à mesure de l'apparition de nouvelles versions PHP.
Exemple d'utilisationPour notre exemple nous voulons utiliser Zend_View et souhaitons utiliser Zend_Loader pour le charger. // inclusion du composant Zend_Loader include "Zend/Loader.php"; // utilisation de de Zend_Loader pour charger notre classe Zend_View Zend_Loader::loadClass ('Zend_View'); // création d'un objet Zend_View $view = new Zend_View(); var_dump($view);
Convention de nom de Zend Framework loadClass() peut être utilisée pour n'importe quelle classe respectant la convention de nom de ZendFramework. Cette convention permet de trouver le nom du fichier dans lequel la classe est déclarée. Les traits de soulignements sont remplacer par des slashs / et le suffixe php est rajouté. Pour Zend_View le fichier contenant la déclaration de la classe se trouve dans Zend/View.php Inclure un fichier avec Zend_Loader::loadFileIl est possible d'utiliser Zend_Loader::loadFile() pour inclure des fichiers tel que nous le ferions avec include(). ( à quelques exceptions prêtes sur les vérification d'éventuels caractères défectueux sur le nom de fichier )
Chargement automatique d'une classe ( autoload)le chargement automatique permet d'éviter d'appeler Zend_Loader::loadClass() à chauqe fois que l'on désire utiliser une classe. Pour l'éviter il suffit d'indiquer que nous souhaitons utiliser l'autoload. // inclusion du composant Zend_Loader include "Zend/Loader.php"; // utilisation de de Zend_Loader pour charger notre classe Zend_View Zend_Loader::registerAutoload(); $date= new Zend_Date(); echo "Hello Zend Framework, nous sommes le ".$date;
Comme nous pouvons le voir nous n'utilisons plus Zend_Loader::loadClass() avant d'utiliser Zend_Date(). Création d'un loader personnaliséIl est parfois nécessaire pour des raisons de sécurité de créer une classe personnalisée qui sera utilisé pour le chargement automatique. Cette classe contient une méthode statique autoload ayant pour seul parametre le nom de la classe à charger.
exemple de Loader Class My_First_Loader { public static function autoload ($aclass) { include strstr($aclass,'_','/').'.php'; } }+ Utilisation d'un loader personnaliséPour utiliser un loader personnalisé il faut utiliser une classe personnalisée au moment de l'appel deregisterAutoload: // utilisation d'une classe personnalisé Zend_Loader::registerAutoload('My_First_Loader'); // utilisation d'une classe avec autochargement implicite var_dump( new Zend_Date());
Integration dans notre application exemple ( décrite dans un prochain chapitre)Zend_loader est appelé dans le bootstrap de l'application :
<?php // utilisation de Zend_Loader require_once 'Zend/Loader.php'; // chargement automatique des classes Zend_Loader::registerAutoload(); // appel du controleur frontal Zend_Controller_Front::run('../application/controllers'); ?>
Il est essentiel de connaitre les composants de base suivants qui sont omniprésent dans les dévelopements avec zend framework : Zend_Config qui permet l'accès aux fichiers de configuration au format .ini, .xml ou php Zend_Log qui offre une solutions de gestion des message de journalisation qui peuvent être envoyer dans un fichier, dans une base de données ou à l'écran Zend_Debug qui permet de dumper les variables PHP Zend_Registry permet le partage de variables partout dans le code. ( à ne pas trop utiliser) Zend_Exception qui gère les exeptions levées lors de l'execution du code.
|
| Mise à jour le Jeudi, 26 Novembre 2009 18:59 |
Composants de base

