Changes
Title
unchanged
How to access a component of a module from within the module itself
Category
unchanged
Tutorials
Yii version
unchanged
Tags
changed
module
Content
changed
The Yii documentation states:
> An application module may be considered as a self-contained sub-application that has its own controllers, models and views and can be reused in a different project as a whole. Controllers inside a module must be accessed with routes that are prefixed with the module ID.
So
, in practic
allye, a module can be handled
just aslike an application,
but with
only minor differences.
Suppos
inge you
were havinghad a custom component 'foo' in your application:
```php
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'preload'=>array('log'),[...]
)
),
```
A...and you need to move it inside a module called 'bar':
```php
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'preload'=>array('log'),[...]
)
//...
```
Now instead of using the component
as usual:
:
```php
Yii::app()->foo
```
You
need to call it like thiscall it from within the module:
```php
Yii::app()->controller->module->foo
```
or
```php
Yii::app()->getModule('module')->foo
```
As you can see, your module is indeed just another application, and you can configure any parameters as you'd do with your "root" application. The only organizat
oryional differences are:
+ a module has a module "entry point", the FooModule which extends CWebModule
, w. Whereas the root application is bootstrapped by the framework itself, starting with your entry script (index.php)
+ the application's SiteController is called inside a module DefaultController