Architecture du framework
Organisation des fichiers
Les fichiers du framework sont organisé de la façon suivante:
- __CLASS_PATH__: le dossier racine du framework
- __CLASS_PATH__/Package/: un dossier specifique pour chaque package
- __CLASS_PATH__/Test/: le dossier racines contenant chacun des tests unitaires
- __CLASS_PATH__/Test/Package/: le dossier contenant les tests unitaires pour un package
- __CLASS_PATH__/Testlaunchers/: le dossier contenant les scripts d'execution des tests unitaires
- __CLASS_PATH__/Testlaunchers/Package/: les lanceurs des test unitaires pour un package donné
Présentation
Les conventions de nommage du framework utilisées sont celles des conventions du framework Zend. Elles ont été utilisées pour repondre au standard PEAR/Zend des conventions de nommages, conventions que vous avez un jour ou l'autre rencontré dans vos developpements.
Certaines classes préexistaient avant la reorganisation des librairies ont nécessité une adaptation aux conventions de nommage. Dans ce cas, une classe d'interfacage a été ecrite pour permettre l'appel selon les conventions selectionnées
Gestion des dependances
Les dependances sont gérés par la méthode __autoload de php.
Les dependances sont gerées de la facon suivante: En ce qui concerne les dependances entre fichiers du framework, elles sont toutes gerées par des chemins d'appel absolus. Ceci pour eviter des cas où vous posséderiez des classes portant le même nom que les miennes, et d'autre part pour ameliorer les perfomances des scripts (require(_once) et include(_once) ne fonctionne parfaitement que lorsque le chemin est absolu).
La gestion de ces dependances est realisée par trois constantes:
- __CLASS_PATH__ qui definit le path du framework
- __TESTCLASSES_PATH__ qui definit le chemin vers les jeux de tests unitaires associés
- __SIMPLETEST_PATH__ qui definit le chemin vers simpletest
D'autres dependances peuvent exister, notamment avec certains packages de PEAR. Dans ce cas, les liens de dependances ne sont mentionnés que relativement.
Jeux de tests unitaires
La plupart des packages presentent des jeux de tests unitaires basé sur simpletest. Le choix a été porté sur simpletest arbitrairement.
La derniere version de simpletest genère quelques notices sous PHP5. j'ai corrigé ces fichiers pour enlever ces notices. Vous pourrez télécharger cette version modifiée ici.
Chaque jeu de test unitaire est lancé par un script. Il vous est vivement conseillé s'il existe des jeux de tests unitaires de tester les classes en executant ces scripts pour verifier la bonne intégration dans votre environnement. Si ce n'est pas le cas, merci de me remonter les problèmes que vous rencontrez
Installation
L'installation du framework ne necessite rien de special. Si vous venez de télécharger un package, extrayez le contenu où vous le souhaitez, le framework sera le dossier extrait. Dans le cas où vous ayez déjà téléchargé plusieurs packages, copiez juste le contenu de l'archive extraite dans les dossiers contenant les précédentes classes.Mise à jour
Pour le moment, vous devrez retelecharger le nouveau package et l'extraire dans le dossier de votre framework. Vous n'aurez rien de plus à faireConfiguration de certains packages
Certains packages nécessitent une configuration, essentiellement ceux appelables en console et basés sur le package Config
La configuration necessite deux etapes:
- La création d'un fichier configuration.path dans le dossier des librairies (__CLASS_PATH__/Config). Ce fichier contiendra le chemin absolu vers un dossier qui contiendra L'ensemble des fichiers requis pour la configuration de vos applications
- Les fichiers de configurations - au format de fichiers ini - presents dans le dossier evoqué
Ces fichiers presentent generalement une structure requise. Des exemples de ces fichiers sont téléchargeables ici. Vous n'aurez plus qu'a les editer pour y renseiger vos propres valeurs
La plupart des jeux de tests unitaires controlent la bonne structure de ces fichiers. Si par hasard vos jeux de tests unitaires s'executaient correctement mais que vous constatiez un disfonctionnement, merci de m'en faire part





