diff options
| author | Nils Adermann <naderman@naderman.de> | 2009-06-06 23:20:10 +0000 |
|---|---|---|
| committer | Nils Adermann <naderman@naderman.de> | 2009-06-06 23:20:10 +0000 |
| commit | 711f482cb62070ab2340aa27c736a85cc6e8c518 (patch) | |
| tree | 33148f99d5774c8af8693634874380bbf34cfb5d /phpBB/includes/ezcomponents | |
| parent | e63b76b22af4ef2d67abb4799a225e0ce38787cf (diff) | |
| download | forums-711f482cb62070ab2340aa27c736a85cc6e8c518.tar forums-711f482cb62070ab2340aa27c736a85cc6e8c518.tar.gz forums-711f482cb62070ab2340aa27c736a85cc6e8c518.tar.bz2 forums-711f482cb62070ab2340aa27c736a85cc6e8c518.tar.xz forums-711f482cb62070ab2340aa27c736a85cc6e8c518.zip | |
- Class loaders for both frameworks:
eZComponents through a loader object
Zend Framework with an autoload function
Example usage:
require("{$phpbb_root_path}includes/ezcomponents/loader.$phpEx");
require("{$phpbb_root_path}includes/Zend/loader.$phpEx");
$loader = new phpbb_ezcomponents_loader();
$loader->load_component('search');
$handler = new ezcSearchZendLuceneHandler( '/tmp/lucene' );
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9552 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/ezcomponents')
| -rw-r--r-- | phpBB/includes/ezcomponents/loader.php | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/phpBB/includes/ezcomponents/loader.php b/phpBB/includes/ezcomponents/loader.php new file mode 100644 index 0000000000..62aaa7667d --- /dev/null +++ b/phpBB/includes/ezcomponents/loader.php @@ -0,0 +1,73 @@ +<?php +/** +* +* @package ezcomponents +* @version $Id$ +* @copyright (c) 2005 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +/** +* @ignore +*/ +if (!defined('IN_PHPBB')) +{ + exit; +} + +/** +* eZ components class loader +* Replaces the autoload mechanism eZ Components normally use +* @package ezcomponents +*/ +class phpbb_ezcomponents_loader +{ + var $loaded; + + /** + * Constructor which makes sure the PHP version requirement is met. + */ + function phpbb_ezcomponents_loader() + { + $this->loaded = array(); + if (version_compare(PHP_VERSION, '5.2.1', '<')) + { + trigger_error('PHP >= 5.2.1 required', E_USER_ERROR); + } + } + + /** + * Loads all classes of a particular component. + * The base component is always loaded first. + * + * @param $component string Lower case component name + */ + function load_component($component) + { + global $phpbb_root_path; + + // don't allow loading the same component twice + if (isset($this->loaded[$component]) && $this->loaded[$component]) + { + return; + } + + // make sure base is always loaded first + if ($component != 'base' && !isset($this->loaded['base'])) + { + $this->load_component('base'); + } + + $ezc_path = $phpbb_root_path . 'includes/ezcomponents/'; + + // retrieve the autoload list + $classes = include($ezc_path . ucfirst($component) . '/' . $component . '_autoload.php'); + + // include all files related to this component + foreach ($classes as $class => $path) + { + include($ezc_path . $path); + } + } +}
\ No newline at end of file |
