Class-based actions

Olá pessoal!

Como gosto de ver o código dos meus controllers o mais pequeno possível, estou a estruturar as minhas actions usando a estratégia Class-based actions permitindo também o aumento da reusabilidade/manutenção do código das mesmas. Até aqui tudo bem :)

Seguindo os passos, imaginem o seguinte exemplo:




class UserController extends Controller

{		

	public function actions()

	{		

		return array(

                        'register'=>'application.controller.user.RegisterAction'

		);

	}

}






class RegisterAction extends CAction

{

        public function run()

        {                

                ... faz algo ...

                $this->getController()->render('register', array('model'=>$model));

        }

}




Estrutura dos directórios:

controllers/

-----------user/

---------------RegisterAction.php

UserController.php

views/

-----user/

---------register.php

Pois bem, visto isto parece-me que está tudo bem, mas acontece que me está a dar uns erros estranhos que não consigo la chegar, por exemplo:

  • se tiver ‘register’=>‘application.controller.user.RegisterAction’ dá uma Exception;

  • se tiver ‘add’=>‘application.controller.user.RegisterAction’ ou qualquer outro nome na ‘key value’ dá um 404;

Resumindo, isto não deveria funcionar? Ou estou a fazer alguma coisa errada ?

Já vi onde está o problema, falta um ‘s’ no controller…esqueçam a duvida.

Bom pelo menos fica ai a ideia para quem começar agora com a Yii, sobre esta maneira de organizar os controllers e os seus actions!!