Контроллеры в Yii 2

Контроллеры в Yii 2 используют систему маршрутизации или её ещё называют система раутов. Даже если посмотреть в debug то там мы увидим:

GET параметр r который передаётся в URL, это аббревиатура от слово routing.

А часто до первого / это имя контроллера, который необходимо загрузить.

Вторая часть, в примере который выше на картинке “login” это имя action которого необходимо загрузить из текущего контроллера.

Данная система используется в большинство фреймворков MVC на php.

Если хотите научиться программировать на фреймворке Yii2, рекомедную Вам:

Контроллеры в Yii 2 – архитектура папок

Вот все папки фреймворка yii:

Все контроллеры находиться в папке controllers.

Каждое слово в называние файла нужно писать большой буквой, при этом, называние файла должно заканчиваться словом Controller.

Именование action (экшинов):

Это вторая часть параметра GET – r.

Каждый action класса контроллера должен состоять как минимум из двух слов.

Первое слово это action, ключевое слово которое говорит что данный метод является не просто методом класса, а именно действием которое загрузит конкретную страницу.

Вот пример action:

    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 строки:

namespace app\controllers;
use yii\web\Controller;

И каждый контроллер должен наследовать контроллер Yii.

class MyController extends Controller { /* my code */ }
Valeriu :