На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Урок 1. Знакомство с XAMPP и Yii2: установка, введение в контроллеры и представления



Давайте попробуем поближе познакомиться с популярным фреймворком Yii2. Самый, пожалуй, простой способ (для меня лично) – это либо через композер установить на каком-то удалённом рабочем сервере, либо же развернуть на своем компьютере в виртуальной машине (с ОС Ubuntu, к примеру). Однако, если уж мы решили исследовать новую технологию, то давайте будем делать это на новом месте – заодно познакомимся и с XAMPP.

XAMPP качаем с официального сайт и ставим куда-нибудь в корень какого-нибудь диска (как предписывает инструкция, чтобы не было проблем с ограничениями путей Windows). После установки и запуска у меня XAMPP выдал предупреждение, что MySQL не будет работать, так как порт 3306 занят (у меня уже стоит какая-то версия мускуля, необходима для других проектов) – так что пришлось прописать в конфигах 3307 и создать другую службу:

sc create mysqlweb binPath= "d:\xampp\mysql\bin\mysqld.exe --defaults-file = D:\xampp\mysql\bin\my.ini mysqlweb"
Но база нам пока и не нужна. Запускаем просто апач, переходим по адресу локалхост в браузере и видм, что XAMPP запустился – прекрасно. Теперь все удаляем из папки htdocs и заливаем туда скачанный архив Yii2 базовый. Меняем cookieValidationKey из файла D:\xampp\htdocs\config\ web.php и пробуем открыть по адресу http://localhost/web/



Отлично. Мы успешно установили фреймворк Yii2. Давайте начнем работать с ним, чтобы посмотреть, что мы можем сделать.

Дополнительная настройка

В нашем config/web.php давайте включим prettyUrl. Прокрутите вниз, пока не увидите пример кода ниже, и раскомментируйте его

'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
        ],
    ],
Приложение Hello World

Давайте создадим наше первое приложение hello world. На самом деле controllers/SiteController.php файл позволяет добавить код ниже

public function actionHello(){
    echo "Hello World";
}
Результат на странице http://localhost/web/site/hello



В yii префикс action в функции контроллера становится маршрутом. Поэтому, если нам понадобится actionHelloWorld(), наш маршрут будет таким http://localhost/web/site/helloworld. Имейте это в виду.

Вот и все, мы создали наше первое приложение hello world.

Каталоги приложения

Список каталогов yii показан ниже. В веб-папке есть загрузчик index.php файл, в котором вам нужно указать свою конфигурацию.

  • yii/ базовый путь приложения
  • composer.json, используемый Composer, описывает информацию о пакете
  • config/ содержит приложение и другие конфигурации
    • console.php конфигурация консольного приложения
    • web.php команды конфигурации веб-приложения
  • commands/ - консольные классы команд
  • controllers/ содержит классы контроллеров
  • models/ содержит классы моделей
  • runtime/ содержит файлы, созданные Yii во время выполнения, такие как журналы и файлы кэша
  • vendor / содержит установленные пакеты Composer, включая сам фреймворк Yii
  • views/ содержит файлы представлений
  • web/ application Web root, содержит файлы, доступные через Интернет
    • assets/ файлы ресурсов (JavaScript и CSS) в Yii
    • index.php скрипт ввода (или начальной загрузки) для приложения Yii
Работа с контроллерами

Контроллеры в MVC-приложениях являются связующим звеном между нашими представлениями и нашими моделями данных.

Давайте посмотрим, что мы можем сделать с контроллерами в yii2.

Простая маршрутизация

В нашем SiteController.php давайте создадим еще один простой маршрут. Мы можем получить доступ к этому маршруту через site/help

public function actionHelp(){
    echo "Это страница помощи";
}
Если бы мы создали функцию в контроллере с именем Dashboard.php маршрут был бы таким dashboard/help.

Создание новой базы маршруту пути

Давайте создадим контроллер панели мониторинга. В каталоге контроллеров появился новый файл с именем DashboardController.php и внутри него добавьте следующий код

<?php

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

class DashboardController extends Controller
{

}
Теперь мы можем добавить наш маршрут help к контроллеру.

class DashboardController extends Controller
{

    public function actionHelp(){
        echo "Это страница помощи 2";
    }
}
Давайте проверим маршрут по адресу http://localhost/web/dashboard/help



Передача параметров в адрес

В нашем справочном маршруте в SiteController мы хотим получить и идентификатор из строки запроса, чтобы могли кое-что сделать:

public function actionHelp( $id="" ){
    if($id){
        echo "this is a help page with id ". $id;
    }else{
        echo "this is a help page";
    }
}
Перенаправление страницы

Давайте посмотрим, как мы можем перенаправить с одного маршрута на другой. В нашем Справочном маршруте SiteController мы пойдем по справочному маршруту DashboardController.

public function actionHelp(){
    $this->redirect('/web/dashboard/help');
}
Вот и наша страница должна быть перенаправлена.

Отображение представления (вьюшки)

Давайте посмотрим, как мы можем визуализировать файл представления. В нашем каталоге views/site мы создадим простое представление под названием faq.php.

Давайте создадим faq.php файл. Мы можем хранить здесь любые часто задаваемые вопросы.

В нашем /views/site/faq.php файл добавим код ниже.

<?php

echo "<h1>My Faq Page</h1>";

?>

<p>Hello this is the FAQ page</p>
Теперь в нашем SiteController нам нужно создать новый маршрут. Давайте назовем его faq.

// Create the faq route
public function actionFaq(){

}
Чтобы получить наш faq.php файл для рендеринга, нам нужно вызвать рендеринг с помощью функции route.

public function actionFaq(){
    return $this->render('faq');
}
Теперь мы можем видеть результат.



Передача данных в представления

Мы можем передавать данные от нашего контроллера к нашим представлениям. Мы обычно передаем наши модели данных таким образом.

Давайте создадим список вопросов.

public function actionFaq(){
    $questions = [
        'How hard is yii2',
        'What will you need to start development',
        'Is PHP easy to learn'
    ];
    return $this->render('faq');
}
Теперь мы можем передать $questions и получить доступ к нему в нашем faq.php вид. Мы делаем следующее.

public function actionFaq(){
    $questions = [
        'How hard is yii2',
        'What will you need to start development',
        'Is PHP easy to learn'
    ];
    return $this->render('faq',['questions'=>$questions]); // отправляем данные
}
Функция render принимает массив в качестве второго аргумента. Данные в этом массиве передаются в наше представление. В нашем faq.php файл мы можем обновить макет:

<?php
echo "<h1>My Faq Page</h1>";
?>
<p>Hello this is the FAQ page</p>
<p>The list of questions is below</p>
<ul>
<?Php foreach($questions as $question):?>
    <li><?php echo $question;?></li>
<?php endforeach; ?>
</ul>
Результат:







Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, yii2, php, фреймворки, уроки по yii2





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Отзывы
Урок 4. Введение в данные, методы и свойства Vue


© upread.ru 2013-2022
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.