Directory and Class Structure

Directory structure

The patTemplate directory structure was modeled after the PEAR concept. The main class patTemplate is located in the file patTemplate.php in the root folder (or in /pat if you installed it using the PEAR installer). This is the only file you need to include directly.

You will also find a directory 'patTemplate' which contains all modules of patTemplate. In this directory there's a Module.php file, which contains the class patTemplate_Module that acts as a base class for all different kinds of modules like Functions, Modifiers, Readers, etc. Furthermore you'll find a file for each of the modules that can be used in patTemplate like Reader.php, Function.php, TemplateCache.php, etc. These files contain the base classes for the modules you may create.

In the patTemplate folder there are several folders, which help you organize the actual modules. The readers are in patTemplate/Reader, the functions in patTemplate/Functions, etc.

That means, if you create a new modifier that should be used in the templates as 'FooMod', you will have to place it in a file called patTemplate/Modifier/FooMod.php otherwise patTemplate will not be able to locate it.

Class trees

patTemplate is fully object oriented code. That means all patTemplate have to be classes. Most of the classes are quite simple and you only have to implemnt one or two methods. But nevertheless they have to be classes, as they must not pollute the global namespace.

The files and directories map directly to the classnames. That means, patTemplate.php contains a class called 'patTemplate' and the file patTemplate/Reader.php contains the class patTemplate_Reader. If you create a reader that should be able to read templates from a database, you should place it into patTemplate/Reader/DB.php and call the class 'patTemplate_Reader_DB'.

If you do not follow these simple rules, patTemplate will currently not be able to load and instantiate the module and your application will break.