Version 1.0.0 - 2006/01/31 |
|
4.2 Localisation de classes
En tant que langage qui se respecte, PHP dispose
déjà d’un dispositif lui permettant de
retrouver des fichiers en cherchant dans des répertoires
spécifiques (pensez à la directive include_path).
Nous aurions pu exploiter cette fonctionnalité pour
retrouver les définitions de classes, mais deux
problèmes se posaient à nous. Les
développeurs n’ont pas toujours la main sur la
configuration PHP du serveur de production (qui peu être chez
un hébergeur). Toutes les applications partageraient les
mêmes répertoires pas toujours accessibles (pensez
à une restriction des droits). Sans oublier que les
fonctions du type include() recherche tous types de fichiers,
vous seriez obligé de spécifier le chemin complet
du fichier.
La plate-forme retrouve les définitions de classes
grâce au chemin de classes propres à chaque
application. Le framework recherche d’abord dans le
répertoire de classes de la plate-forme, puis dans celui de
l’application et en suite celui
spécifié dans la
configuration (cela permet de partager des
définitions entre certains projets).
Un package n’est ni plus ni moins qu’un
simple dossier. L’arborescence des
sous-répertoires de ceux du chemin de classes
reflète l’arborescence des packages.
N’hésitez pas à vous en servir pour
mieux structurer vos projets. Le nom complet d’une classe
située dans un package s’écrit en
séparant les packages par un « . ». Si
nous plaçons le fichier OfficeCustomer.class.php, dans un
répertoire inclus dans le chemin de classes, dans le dossier
exemple, son nom complet serait exemple.OfficeCustomer. Si vous en avez
besoin dans une autre définition, il vous suffira de
l’importer grâce à la méthode
Noas::import() en spécifiant son nom complet en
argument.
Importation de définitions de classe
<?php
…
Noas::import(‘exemple.OfficeCustomer ‘) ;
…
?>
Sachez que la séparation en package est une notion propre
à Noas PHP. Vos noms de classe doivent donc êtres
uniques sur l’ensemble du chemin de classes et non pas sur
l’ensemble d’un package.
|
© 2005 Réoka Djohou, tous droits réservés. |