В этом уроке я вам расскажу о базовый настройке фреймворка Yii2.
Этого хватит для начальной работы, в будущем мы будем изменять настройки.
Для начала необходимо настроить подключение к базе данных:
1. Откройте файл настроек по адресу config/db.php
return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=%ИМЯ_БАЗЫ_ДАННЫХ%', 'username' => '%ПОЛЬЗОВАТЕЛЬ%', 'password' => '%ПАРОЛЬ%', 'charset' => 'utf8', ];
Соответственно замените всё, что выделено процентами(включая проценты, например, %ИМЯ_БАЗЫ_ДАННЫХ% заменяем на blog). Кодировку можете изменить, если используете не utf8.
2. Теперь откройте файл настроек по адресу config/web.php
Теперь мы настроим отображение даты и времени в нужном формате, настроим красивые ссылки, настроим доступ к gii.
1) Настройки формата даты и времени
Настроим вывод даты и времени в привычном нам формате:
'formatter' => [ 'class' => 'yii\i18n\Formatter', 'dateFormat' => 'php:d.m.Y', 'datetimeFormat' => 'php:d.m.Y H:i', 'timeFormat' => 'php:H:i:s', ],
Таким образом мы настроили формат даты (например, 01.01.2020), формат даты и времени одновременно(например, 01.02.2020 10:22), формат времени(например, 21:47:26). Обратите внимание, формат даты и времени с отображением без секунд, а в формате времени есть отображение секунд. За это отвечает «s».
2) Настроим красивые ссылки (urlManager)
Для начала составим скелет:
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ] ],
enablePrettyUrl — включение красивых ссылок. При значении false у вас будут проходить запросы длинными некрасивыми ссылками: http://test.com/?controller=site&action=index. Как вам? Согласитесь, не очень. Как будет выглядеть при значении true: http://test.com/site/index. Гораздо лучше, не так ли?
showScriptName — показывать ли расширение файла. Допустим .php или .html. Не советую включать, такие ссылки выглядит не очень красиво: http://test.com/site/contacts.html, либо http://test.com/site/contacts. На мой взгляд второй вариант лучше, чем первый. Но тут дело вкуса.
Теперь перейдем к настройке правил (rules):
Синтаксис такой, изначально мы пишем ссылку, которую хотите видеть и к ней присваиваете значение, куда пройдет реальный запрос. Вот пример:
'rules' => [ '<action:contacts>/<action>' => 'site/<action>', '<controller:\w+>/<id:\d+>' => '<controller>/view', ]
Теперь давайте разберем эти правила.
Первая строка. Мы перенаправляем action contacts на контроллер site и action contacts. То есть итоговый результат http://test.com/contacts, но без этой настройки было бы http://test.com/site/contacts.
Вторая строка. Мы парсим ID для любого контроллера и передаём в нашу вьюшку. То есть запрос будет выглядеть так: http://test.com/ЛЮБОЙ_КОНТРОЛЛЕР/20, но без настройки пришлось бы делать такой запрос: http://test.com/ЛЮБОЙ_КОНТРОЛЛЕР/view/?id=20, что не очень то привлекает.
3) Теперь перейдем к настройке gii.
В Yii2 доступен инструмент для автоматической генерации кода. Вам не нужно создавать вручную контроллеры, модели, вьюшки, gii все это сделает за вас.
Изначально gii расположен по адресу http://test.com/gii, на своё усмотрение вы можете изменить ссылку, но я не буду об этом рассказывать. Перейдя в первый раз, вы можете заметить, что доступ запрещен. Идёт блокировка по IP. Чтобы добавить ваш IP в белый лист, необходимо в конце нашего файла настроек найти allowedIPs и в массив добавить еще один IP — ваш. После чего вы можете перейти еще раз и увидеть там такую картину:
В следующем уроке я вам расскажу, как использовать этот самый yii code generator.
3. И теперь давайте настроим последний файл настроек по адресу config/params.php
В данном файле вы можете вводить любые переменные, к которым позже сможете обращаться. Здесь вы можете задать данные, которые статичны. Например, контактный e-mail, имя сайта. Получить значение вы можете такой строчкой:
Yii::$app->params['email']
Всё довольно просто и не вызовет у вас каких-то сложностей.
На этом базовая настройка Yii2 завершена. В дальнейших уроках разберем работу с Gii, настройка ролей, миграции, кэширование и прочее. Пишите в комментарии, если хотите увидеть какой-то определенный урок по теме.
спс