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.