Правила наименования классов контроллеров
Названия классов контроллеров могут быть получены из ID контроллеров следующими способами:
- Привести в верхний регистр первый символ в каждом слове, разделенном дефисами. Обратите внимание что, если ID контроллера содержит слэш, то данное правило распространяется только на часть после последнего слэша в ID контроллера;
- Убрать дефисы и заменить любой прямой слэш на обратный;
- Добавить суффикс
Controller
; - Добавить в начало [[yii\base\Application::controllerNamespace|пространство имен контроллеров]].
Ниже приведены несколько примеров, с учетом того, что [[yii\base\Application::controllerNamespace|пространство имен контроллеров]] имеет значение по умолчанию равное app\controllers
:
article
соответствуетapp\controllers\ArticleController
;post-comment
соответствуетapp\controllers\PostCommentController
;admin/post-comment
соответствуетapp\controllers\admin\PostCommentController
;adminPanels/post-comment
соответствуетapp\controllers\adminPanels\PostCommentController
.
Классы контроллеров должны быть автозагружаемыми. Именно по этой причине, в вышеприведенном примере, контроллер article
должен быть сохранен в файл, псевдоним которого @app/controllers/ArticleController.php
; в то время как контроллер admin/post-comment
должен находиться в файле @app/controllers/admin/PostCommentController.php
.
Info: Последний пример
admin/post-comment
показывает каким образом вы можете расположить контроллер в подпапке [[yii\base\Application::controllerNamespace|пространства имен контроллеров]]. Это очень удобно, когда вы хотите организовать свои контроллеры в несколько категорий и не хотите использовать модули.