Application Controller exends a Module Controller


I’d like know how a application controller (like SiteController) can exteds a Module controller?

I’m creating a module with a controller that need to be extended for all applications controllers.


I did this. I created a subclass of CModule and CController to work together.

Its not packaged up but you can browse my source code @ google:

Hi guy, I’m looking your code but I think that is not what I want.

Look my idea:

I have a module called "generic" with one controller called GenericController.

class GenericController extends CController {}

On my root application I have a controller called "SiteController" that extends "GenericController" of model

class SiteController extends model.generic.GenericController {}

I’d like know if can I make this (or any thing like it) on Yii?


You need to import the module or it’s controllers before creating a child of it.

you can do this


class SiteController extends GenericController...

or you could add the generic module to the import array in your protected/config/main.php like





or you could just do a require/include on the file GenericController.php where i put Yii::app()->getModule(… in the first example.

Hi jayrulez, I understood, but I intend to create this controller on a module becouse besides the generic controller I intend to create a default views (css | html | js), and use this views in all controllers that extend the generic controller.

Based on your exemples I think that the best form is importing on array in protected/config/main.php, but I don’t know if the generic view will work on this form.

Do you know if the views will work that form?


Hi jayrulez,

I did your sugestion, and I managed to extend the controller of generic module on all controller of root application, but the generic view of module not work.

To fix up this problem I changed the module controller to extend CExtController instead of extend CCcontroller, and now the application can’t found the index view, and it’s throwing a exception: SiteController cannot find the requested view “index”.

How can I fix up this?


Hi guys,

I finally got fix up the views problem, the solution is very simple, I just needed to changed the path of view to "generic.views.default.index" instead of put only "index".

I found this reading this post

Now I’ll start a new phase of my module.

This post is resolved.

Thanks for All