La stucture de dossiers du patTemplate a été fabriquée après le PEAR concept. La main classe de patTemplate est situées dans le fichier patTemplate.php à la racine (ou dans /pat si vous avez installé l’utilisation de l’installateur PEAR). C’est le seul fichier que vous avez besoin d’inclure directement.
Vous trouverez également un répertoire ‘patTemplate’ qui contient tout les modules du patTemplate. Dans ce répertoire il y a un Module.php qui contient la classe patTemplate_Module ce qui agit sur les classes de base pour les modules comme Functions, Modifiers, Readers, etc. En outre vous trouverez un fichier pour chaque modules qui peuvent être utilisés dans patTemplate comme Reader.php, Function.php, TemplateCache.php,etc. Ces fichiers contiennent les classes de base pour les modules que vous souhaitez créer.
Dans le répertoire du patTemplate il y a différents répertoires, afin de vous aidez à organiser les vrais modules. Les readers sont dans patTemplate/Reader, les fonctions dans patTemplate/Functions, etc.
Celà signiphie, si vous créer un nouveau modifieur qui devra être employé dans des templates comme ‘FooMod’, vous allez le placer dans le fichier appelé patTemplate/Modifier/FooMod.php autrement le patTemplate ne pourra le localiser.
PatTemplate est full orienté objet. Celà signiphie que tout le patTemplate doit être des classes. La pluspart des classes sont simples et vous avez juste à implémenter une ou deux méthodes. Mais néanmoins ils doivent être des classes, car il ne doivent pas polluer le namespace globale.
Les fichiers et répertoires pointent directement sur les noms de classes. Cela signiphie que patTemplate.php contient une classe appelée ‘patTemplate’ et le fichier patTemplate/Reader.php contient la classe ‘patTemplate_Reader’. Si vous créez un reader qui devras être capable de lire des templates de la base de données, vous devrez placer ceci dans patTemplate/Reader/DB.php et l’appeller de la classe ‘patTemplate_Reader_DB’.
Si vous ne suivez pas ces règles simples, patTemplate ne pourras actuellement pas charger et instancier le module et votre application sera cassée.