Difference between #1 and #4 of
How to access a component of a module from within the module itself

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 practicallye, a module can be handled just aslike an application, but with only minor differences. Supposinge 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 organizatoryional 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
 
3 1
7 followers
Viewed: 60 736 times
Version: 1.1
Category: Tutorials
Tags: module
Written by: OriginalCopy
Last updated by: Roman Solomatin
Created on: Apr 7, 2009
Last updated: 11 years ago
Update Article

Revisions

View all history