Контролери у Yii2. Частина 2

327

Від автора: вітаю вас, друзі. У цій статті ми продовжимо знайомитися з поняттям контролери в Yii2. З статті ми дізнаємося, як створити свій перший контролер, як його викликати і як змінити controller за замовчуванням.

Отже, в попередній статті ми з вами торкнулися теоретичні моменти даного поняття. Зокрема, ми дізналися, яким може бути його назва, поглянули на controller за замовчуванням — SiteController, а також торкнулися поняття дій (action).

Тепер давайте перейдемо до більш практичних питань і спробуємо створити свій перший controller. Нагадаю, він повинен знаходитися в папці controllers, там ми його створимо. Нехай це буде тестовий клас, який я назву згідно правил іменування фреймворку — TestController:

Контролери у Yii2. Частина 2

Відмінно! Як ви пам’ятаєте, створений клас повинен успадковувати yii\web\Controller. Йдемо далі. Наступним кроком буде створення першого дії (action), яке буде відповідати за роботу зі сторінкою в браузері. Давайте створимо пару екшенів: перше назвемо actionIndex, друге — actionPage.

public function actionIndex()
{
echo __METHOD__;
}
public function actionPage()
{
echo __METHOD__;
}

Контролери у Yii2. Частина 2

Поки все просто. А як тепер викликати контролер і потрібний action. В Yii виклик класу і дії відбувається наступним чином: в адресному рядку браузера ми просто повинні вказати назву класу без слова Controller і дії без слова action. Все це потрібно вказати за замовчуванням так: http://yii2/web/index.php?r=test/page — так ми викличемо TestController і його дія actionPage.

Контролери у Yii2. Частина 2

Відповідно, якщо ми хочемо звернутися до іншої дії — actionIndex — нам просто потрібно вказати потрібну назву дії: http://yii2/web/index.php?r=test/index. До речі, домогтися того ж результату можна й за адресою — http://yii2/web/index.php?r=test. Так можливо, тому що за замовчуванням, якщо ми не вказуємо назву дії, тоді фреймворк буде викликати actionIndex.

Ну і, нарешті, останній момент, якого ми торкнемося, це встановлення контролера за замовчуванням. Нагадую, зараз таким є SiteController. Зробити це можна через файл конфігурації — config\web.php. Додамо в цей файл налаштування defaultRoute зі значенням виду controller/action. Наприклад, зробимо таким за замовчуванням TestController і дією за замовчуванням actionPage:

‘defaultRoute’ => ‘test/page’,

Контролери у Yii2. Частина 2

На цьому ми, мабуть, зупинимося. Поки що наші сторінки виглядають не дуже презентабельно, але в наступних статтях ми дізнаємося, як це поправити. Більше про фреймворку ви можете дізнатися з наших безкоштовних або платних уроків.