IDs dos Controllers
Por padrão, os IDs dos controllers devem conter apenas esses caracteres: letras inglesas em caixa baixa, números, underscores (underline), traços e barras. Por exemplo, article e post-comment são ambos IDs de controllers válidos, enquanto article?, PostComment, admin\post não são.
Os nomes da classes dos controllers podem ser derivadas dos IDs dos controllers de acordo com as seguintes regras:
E preceder ao [[yii\base\Application::controllerNamespace|namespace controller]].
article deriva-se de app\controllers\ArticleController;
post-comment deriva-se de app\controllers\PostCommentController;
admin/post-comment deriva-se de app\controllers\admin\PostCommentController;
adminPanels/post-comment deriva-se de app\controllers\adminPanels\PostCommentController.
As classes dos controllers devem ser autoloadable. Por esta razão, nos exemplos anteriores, o controller article deve ser salvo no arquivo cuja alias é @app/controllers/ArticleController.php; enquanto o controller admin/post2-comment deve ser salvo no @app/controllers/admin/Post2CommentController.php.
Informação: No último exemplo admin/post2-comment, mostra como você pode colocar um controller em um subdiretório do [[yii\base\Application::controllerNamespace|namespace controller]]. Isto é útil quando você quiser organizar seus controllers em diversas categorias e não quiser usar módulos.
Você pode configurar um [[yii\base\Application::controllerMap|mapeamento de controllers]] para superar as barreiras impostas pelos IDs de controllers e pelos nomes de classes descritos acima. Isto é útil principalmente quando quiser esconder alguns controllers de terceiros na qual você não tem controle sobre seus nomes de classes.
Você pode configurar o [[yii\base\Application::controllerMap|mapeamento de controllers]] na configuração da aplicação como o seguinte exemplo:
Cada aplicação tem um controller padrão que é especificado pela propriedade [[yii\base\Application::defaultRoute]]. Quando uma requisição não especificar uma rota, será utilizada a rota especificada pela propriedade. Para as [[yii\web\Application|aplicações Web]], este valor é 'site', enquanto para as [[yii\console\Application|aplicações console]] é help. Portanto, se uma URL http://hostname/index.php for usada, significa que o controller site será usado nesta requisição.
IDs das Ações
Por padrão, os IDs das ações devem conter apenas esses caracteres: letras inglesas em caixa baixa, números, underscores (underline) e traços. Os traços em um ID da ação são usados para separar palavras. Por exemplo, view, update2, comment-post todos são IDs válidos, enquanto view?, Update não são.
Você pode criar ações de duas maneiras: ações inline (em sequência) e ações standalone (autônomas). Uma ação inline é definida pelo método de uma classe controller, enquanto uma ação standalone é uma classe que estende de [[yii\base\Action]] ou de suas classes filhas. As ações inline exigem menos esforço para serem criadas e muitas vezes as preferidas quando não se tem a intenção de reutilizar estas ações. Ações standalone, por outro lado, são criados principalmente para serem utilizados em diferentes controllers ou para serem distribuídos como extensions.
Os nomes dos métodos de ações são derivadas dos IDs das ações de acordo com os seguintes critérios:
Ações standalone são definidas por classes de ações que estendem de [[yii\base\Action]] ou de suas classes filhas. Por example, nas versões do Yii, existe a [[yii\web\ViewAction]] e a [[yii\web\ErrorAction]], ambas são ações standalone.
Se uma das chamadas retornar false, o restante dos métodos beforeAction() serão ignoradas e a execução da ação será cancelada.