Quantcast
Channel: Yii Framework Forum
Viewing all articles
Browse latest Browse all 18717

Module Multiple Instances

$
0
0
Hello,

I need to intantiate several times a module.

After researching, I figured out that itcould be done in this way:
	'modules' => array(
    	'instance_1' => array(
        	'class' => 'application.modules.mymodule.MyModuleModule',
        	'table' => 'table_1',
        	'parameter_1' => 'value_1',
        	...
        	'parameter_N' => 'value_N',
    	),
    	'instance_2' => array(
        	'class' => 'application.modules.mymodule.MyModuleModule',
        	'table' => 'table_2',
        	'parameter_1' => 'value_1',
        	...
        	'parameter_N' => 'value_N',
    	)
    	...


At least i got this: when I use the MyModule in the "menu": array('label' => 'Instance_1', 'url' => array('/instance_1/mymodulecontroller/index')... I can get it work becouse I can use getController...

However...
If I use one of that instances in this way
Yii::app()->getModule('instance_1')->method;

I know the name of the instance, because in MyModuleController.php, $this refers to MyModuleModule instance and with its ID I can know name and instance configuration.

But in MyModule.php (model) I've "lost" this "identification and configuration" ie: table name is on module configuration

So, how I can know the "instance name" in every place of the module: controllers and models, no matter how I instantiate it or get to the module model or module controller.

I already tried, with no success:
- Use "init()" with getController(), doesn't work when I use the instatiation as showed above;
- Use "__construct" with "init()" in the model, when enters in "init()", the variables setted in "__contruct()" are empty;

I need to do it in that way: instantiating the module as many times as I need, configurating the name of the tables (different in each instance) and its messages...

Thanks in advance...

Viewing all articles
Browse latest Browse all 18717

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>