Tem alguma maneira de identificar todas as actions de um controller?
Tipo, todas as funções. Ex:
public function actionAdd(){
// código
}
public function actionDel(){
// código
}
me retornar:
controller/add
controller/del
Tem alguma maneira de identificar todas as actions de um controller?
Tipo, todas as funções. Ex:
public function actionAdd(){
// código
}
public function actionDel(){
// código
}
me retornar:
controller/add
controller/del
Dê uma olhada na API de Reflexão do PHP: http://www.php.net/manual/en/reflectionclass.getmethods.php
Acredito que a partir dela vc consiga implementar essa idéia.
Essas informações de reflexão de um controlador ainda não encontrei no framework, se alguém encontrar não deixe de informar.
FLW!
Acácio,
Tenho uma funçãozinha básica aqui, que peguei até no forum, para listar todos os Controllers e depois pegar os Actions.
$declaredClasses = get_declared_classes();
foreach (glob(Yii::getPathOfAlias('application.modules.admin.controllers') . "/*Controller.php") as $controller) {
$class = basename($controller, ".php");
if (!in_array($class, $declaredClasses))
Yii::import("application.modules.admin.controllers." . $class, true);
foreach (get_class_methods($class) as $method) {
if (preg_match('/^action+\w{2,}/', $method)) {
$a = substr($method, 6);
echo $a;
}
}
}