<Proger/> Про мене
ProProger

Yii2 > Вчимо YII2. #2. Створення першої сторінки

Автор: / Час публікації: 17/08/2017 14:39

У попередньому уроці я розказав, як встановити і налаштувати YII2. Сьогодні я розкажу, як створити свою першу сторінку! Після сьогоднішгього уроку Ви зможете вже з допомогою документації розібратись з фреймворком, але з трудностями. Отож, приступимо!

YII2 Framework розроблений на системі MVC(Model-View-Controller, перекладається: Модель-Представлення-Контролер). Отже, щоб зробити нову сторінку потрібно задіяти ці 3 частини(Модель не обов'язкова). Переходимо у контролер, який створено заумовчанням, /controllers/SiteController.php. Відкривши цей файл, Ви можете побачити, що контроллер це є простий клас у кінці назви, якого є слово "Controller"(Наприклад, SiteController, ApiController, AdminController...). Цей клас має наслідувати основний клас "yii\web\Controller".

Якщо подивитись у тіло класу контроллера, то ми побачимо декілька методів з префіксом "action"(Наприклад, actionIndex(), actionLogin(), actionLogout()...). У цих методах як раз і створюються нові сторінки. Щоб створити таку сторінку Вам потрібно створити новий метод з префіксом "action". А у ньому потрібно повернути значення уже існуючого метода цьогого контроллера "render", і передати йому назву представлення(без '.php') і масив з параметрами, які будуть доступні на сторінці представлення. Наприклад:

public function actionNew_page($text = 'Hello World!'){
    return $this->render('view_page',[
        'text' => $text
    ]);
}

У прикладі, я для методу "actionNew_page" додав параметр "$text"(займовчанням - Hello World!). Цей параметр буде приймати значення GET-параметра з іменем "text", але якщо такого GET-параметра не буде, то ця змінна буде мати значення - "Hello World!". А в методі "render()" передаємо назву файлу з представленням("view_page"; Фреймворк переробить цю назву в дійсну назву php-файлу, тобто - "view_page.php") і передаєм всі параметри у файл-представлення(Там вони будуть у вигляді змінної. Якщо передано в масиві параметр "text", то у файлі- представленні буде змінна "$text" з значенням цього параметра.)

Сторінку в контроллері ми уже створили! Тепер потрібно створити її вигляд у представлені. Для цього переходимо у папку /views, де ми бачимо дві папки: 'layouts' і 'site'. У папці layouts є усі макети для кожного контролера(Зараз там тільки 'main.php' для контролера 'Site'). Заумовчанням назва файлу має відповідати назві контролера, але це легко змінити за допомогою властивості в контролері 'layout', куди потрібно записати тільки назву файла-макета. До макетів відносять весь вміст, який не змінюється на сторінках одного контролера(Наприклад: header, footer, sidebar). За контент кожної сторінки в файлі-макеті відповідає змінна '$content' її потрібно просто вивести в цьому файлі в потрібному місці.

Тепер перейдемо в папку 'site', де зберігається вже сам вміст сторінки. Тут потрібно створити файл з назвою 'view_page.php'. Відкриваємо цей файл, і пишемо що хочемо побачити на цій сторінці. Наприклад:

<?
$this->title = "Hello Page"; // за допомогою цього параметру у сторінки буде тег 'title', з таким значенням.
?>
<h1>Це моя перша сторінка на Yii2</h1>
<?=$text;//Параметр, який ми передавали у 'render()'?>

Якщо перейти за посиланням Ваш_домен/web/index.php?r=site/new_page, де 'site' - це назва контролеру, а 'new_page' - назва дії(сторінки), то Ви побачите сторінку, яку ми створили у цьому уроці! А якщо передати якесь значення у GET-параметр 'test', то воно виведеться замість 'Hello World!'.

Завдання для практики:

Створіть сторінку, на якій будуть додаватись два числа передані в GET-параметрах. Якщо чисел не передано, то вивести повідомлення, що потрібно передати два GET-параметра
Не забувай написати коментар і поширити посилання в соц. мережах за допомогою кнопок нижче! Дякую за увагу!

Коментарі(0)