Home Composants de base
Composants basiques PDF Imprimer Envoyer
É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_Loader

Zend 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:

  • Pour le chargement manuel d'une classe ou d'un fichier PHP à chaque fois que l'on veut s'en servir
  • Pour le chargement automatique qui permet l'appel automatique de Zend_Loader lorsque PHP  veut utiliser un classe ( ce procéder s'appelle autoload)

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'utilisation

Pour 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::loadFile

Il 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