GImport class implements recursive import of directories with caching.
Import is performed recursively for specified path alias. Classes found are cached, so the import process can be slow only first time.
Requirements ¶
Tested on Yii 1.1.10
Usage ¶
Download and extract archive into protected/components directory.
Basic usage example:
$importer = new GImport;
$importer->add('modules.myModule.*');
This code will import all clasees from modules/myModule/ directory.
GImport can also be configured as application component. Add following code into the application config:
return array(
...
'preload' => array('log', 'import'),
...
'components' => array(
'import' => array(
'class'=>'GImport',
'import' => array(
// add directories to import and
// put 'import' component to preload to trigger import
// on application initialization
'application.extensions.*',
),
),
...
To import additional classes in runtime use following code:
Yii::app()->import->add('modules.myModule.*');
Class names and paths will be added to Yii::$classMap and available for autoload. Import performed only once for each alias. Class cache is saved into file in the (by default)runtime/classes directory. During development clean 'runtime/classes' after changing files structure or set '$cacheEnabled' property to false to disable file cache.
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.