eZ Components technical details =============================== Requirements ------------ Most of the components in the library require PHP 5.2.1, although the Locale package will require a Unicode enabled version of PHP (probably PHP 6). Dependencies ------------ The components library is made with lose coupling in mind. This means that each component was engineered to have as little dependencies on other components as possible. The diagram here shows how the packages are coupled: .. image:: http://files.derickrethans.nl/components-dependencies.png We are providing some functionality in a Base package, on which all other package do depend. The Base package provides some generic exceptions, but also the autoload mechanism that all other package rely on. To minimize dependencies we introduced "Tie-In" packages. They allow us to tie two packages together, for example the Template package and the Locale package without actually making them depend on each other. The Template Locale Tie-In package depends on both the Template and Locale packages. .. image:: http://talks.php.net/presentations/slides/toolbox/tie-in.png On-Demand Loading ----------------- All of the classes in the components library are loaded on-demand, with the help of PHP's autoloading functionality. After setting up the initial Base package nothing in your application has to require or include any files. Because of this only the classes which are really necessary will be loaded by PHP into memory and that reduces memory footprint. F.e. the Exception classes will only be loaded in case there is an Exception. The library is also engineered to be as optimal with loading classes as possible. .. vim: et syntax=rst tw=78