Контроллеры в Yii 2 используют систему маршрутизации или её ещё называют система раутов. Даже если посмотреть в debug то там мы увидим:
GET параметр r который передаётся в URL, это аббревиатура от слово routing.
А часто до первого / это имя контроллера, который необходимо загрузить.
Вторая часть, в примере который выше на картинке “login” это имя action которого необходимо загрузить из текущего контроллера.
Данная система используется в большинство фреймворков MVC на php.
Если хотите научиться программировать на фреймворке Yii2, рекомедную Вам:
- Бесплатный мини-курс по азам фреймворка Yii2 от команды WebForMySelf.
- Платный видео курс: Фреймворк YII2 с Нуля до Профи. Быстрая разработка с современным фреймворком тоже от команды WebForMySelf.
Контроллеры в Yii 2 – архитектура папок
Вот все папки фреймворка yii:
Все контроллеры находиться в папке controllers.
Каждое слово в называние файла нужно писать большой буквой, при этом, называние файла должно заканчиваться словом Controller.
Именование action (экшинов):
Это вторая часть параметра GET – r.
Каждый action класса контроллера должен состоять как минимум из двух слов.
Первое слово это action, ключевое слово которое говорит что данный метод является не просто методом класса, а именно действием которое загрузит конкретную страницу.
Вот пример action:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public function actionLogin() { if (!Yii::$app->user->isGuest) { return $this->goHome(); } $model = new LoginForm(); if ($model->load(Yii::$app->request->post()) && $model->login()) { return $this->goBack(); } return $this->render('login', [ 'model' => $model, ]); } |
Каждое следующее слово должно начинаться большой буквой.
При этом данное слово является вторым параметром нашего URL (то что после первого слэша).
Виды
Все виды расположены в папке views.
В папке views/layouts находиться наши шаблоны.
Изначально в папке views есть ещё папка site, потому что у нас есть один контроллер который называется SiteController.php.
Соответственно если мы сделаем больше контроллеров то должны будем сделать и больше папок в папке views.
То есть каждая папка вида принадлежит конкретному контроллеру, и называется по имени контроллера (именование папок делается в нижнем регистре).
Ещё файлы которые находятся в папке views лучше называть по имени action (экшина).
В каждом новом контроллере нужно добавить следующие 2 строки:
1 2 |
namespace app\controllers; use yii\web\Controller; |
И каждый контроллер должен наследовать контроллер Yii.
1 |
class MyController extends Controller { /* my code */ } |