Advertisement
  1. Code
  2. Yii
Code

Программируем с Yii2: использование расширенного шаблона приложения

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called How to Program With Yii2.
How to Program With Yii2: AuthClient Integration With Twitter & Google
How to Program With Yii2: Google Authentication

Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)

Final product image
What You'll Be Creating

Если вы интересуетесь: «Что такое Yii?» ознакомьтесь с уроком Знакомство с Yii Framework, в котором рассматриваются преимущества Yii и который включает в себя обзор Yii 2.0.

В этой серии Программирование с Yii2 я направляю читателей в использование Yii2 Framework для PHP. Когда вы начнете использовать Yii для реальной разработки, вы можете начать свой следующий проект с помощью его расширенного шаблона для приложений. Помимо всего прочего, он предоставляет интегрированные функции управления пользователями, а также два приложения: один для фронтенда, ориентированный на клиента, а другой - административный.

В этом уроке я расскажу вам о расширенном шаблоне Yii2 и расскажу вам об основных его настройках и использовании. В уроке Интеграция регистрации пользователя мы рассматривали внедрение пользовательского управления поверх базового шаблона с расширением User Yii2, в этом руководстве будет создан новый репозиторий с расширенным шаблоном, а не продолжен пример на нашей базовой кодовой базе Yii.

Прежде чем мы начнем, пожалуйста, помните,  что я стараюсь участвовать в обсуждениях ниже. Если у вас есть вопрос или предложение по теме, пожалуйста, напишите комментарий ниже или свяжитесь со мной в Twitter @reifman. Вы также можете отправить мне электронное письмо.

Если вы заметили, что в этой серии была задержка, это потому, что я недавно вернулся с операции на мозг. Благодарим вас за терпение и поддержку. Приятно регулярно писать, и я с нетерпением жду продолжения освещения Yii2.

Чем отличается расширенный шаблон

Наиболее полезной причиной перехода на расширенный шаблон является его реализация функций управления пользователями, таких как регистрация, вход в систему, выход из системы и сброс пароля.

В расширенном шаблоне также предусмотрено несколько деревьев доступа для большего веб-приложения. Он имеет внешнее и внешнее веб-приложение для конечных пользователей и внутреннее для администраторов. Но это также можно расширить - например, для модераторов или специального API, хотя есть и другие способы интеграции этих функций в одно приложение.

Вот диаграмма, показывающая основные различия между базовым Yii и расширенной установкой:

Yii2 Advanced Template Comparison with Basic Template

В моих последних учебниках о расширении User Yii2 я все больше впечатлен набором функций в качестве альтернативы расширенному шаблону. Однако он также может быть легко интегрирован в любую установку.

Перед началом крупного проекта стоит изучить расширенный шаблон. Я собираюсь помочь вам в этом.

Установка расширенного шаблона

Давайте начнем установку расширенного шаблона с Yii2. Мы можем следовать инструкциям из шаблона расширенного проекта на GitHub.

Обновление Composer

Во-первых, мы проверяем, что у Composer есть необходимые ему пакеты:

Установка Yii с расширенным шаблоном

Затем мы можем установить Yii с расширенным шаблоном проекта. Мы будем называть наше учебное приложение yiiplus:

Инициализация нашего приложения Yii

Теперь давайте инициализируем наше приложение:

Подготовьте базу данных

Затем я буду использовать установленную версию MAMP для PHPMyAdmin для создания базы данных:

create the database in PHPMyAdmin

Нажмите Create. Взяв скриншоты для учебника, я забыл нажать кнопку Create, а затем удивлялся, почему мне не удалось выполнить миграцию моей базы данных - она еще не существовала.

Затем отредактируйте файл /common/config/main-local.php, чтобы включить настройки своей базы данных:

Затем вы готовы запустить миграцию базы данных для инициализации своего приложения. Это прежде всего настраивает таблицу для управления пользователями:

Настройка Apache для Front-End и Back-End  сайтов

Когда мы настраиваем наше окружение разработки или production с помощью расширенного шаблона, нам нужно указать веб-сервер на другой корневой путь, два на самом деле.

Сначала мы отредактируем наш файл hosts, чтобы включить frontend.dev и backend.dev:

В моем рабочем окружении с помощью MAMP я привяжу свой каталог yiiplus к httdocs MAMP:

Затем я активирую (раскомментирую) включение для виртуальных хостов:

И настрою пути для каждого из моих серверов:

Как только это будет завершено, вот что будет выглядеть на веб-сайте frontfront: http://frontend.dev:8888:

Yii2 Advanced Template Front End Home Page

На бэкенд сайте будет запрашиваться вход в систему для администраторов:

Yii2 Advanced Template Back End Home Page

Изучаем управление пользователями

Теперь я расскажу вам об основных элементах управления пользователями расширенного шаблона. Но сначала нам нужно обеспечить, чтобы мы получали электронные письма от Yii в нашей среде разработки.

Настройка доставки электронной почты

Управление пользователями отправляет электронные письма для сброса пароля, поэтому нам необходимо активировать конфигурацию SMTP SwiftMailer Yii. Я собираюсь использовать Mailtrap.io, который я рассмотрел в своем предыдущем учебнике, Введение в Mailtrap: поддельный SMTP-сервер для предварительного тестирования электронной почты вашего приложения.

Mailtrap предоставляет поддельный SMTP-сервер для вашей команды разработчиков, чтобы тестировать, просматривать и распространять электронные письма, отправленные из рабочего окружения, и проверять реальные данные без риска спама реальных клиентов. Для многих задач разработки использование Mailtrap будет бесплатным.

По сути, вы подписываетесь на Mailtrap и отправляете всю свою электронную почту через ваш поддельный SMTP-сервер Mailtrap. Ниже приведен краткий обзор видеоролика Mailtrap от Railsware:

Если вы выполните руководство и создадите учетную запись Mailtrap, вы увидите свой почтовый ящик:

The Mailtrap dashboard with your inboxes

И когда вы нажмете на значок «Настройки» в списке «Входящие», вы увидите, что каждый почтовый ящик Mailtrap имеет свои собственные учетные данные SMTP-сервера:

Mailtrap SMTP Server credentials

С Yii я обновляю настройки SMTP SwiftMailer в /common/config/main-local.php. Вот как это выглядит:

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

Вход и регистрация

Вот как выглядит экран регистрации на фронтенде:

Yii2 Advanced Application Template Sign up screen

Это перенаправит вас на домашнюю страницу:

Yii2 Advanced Application Template Signed in

Вход в систему

Вот экран входа:

Yii2 Advanced Application Template Login

Забыли пароль

И вот экран Забыли пароль:

Yii2 Advanced Application Template Password Reset

Если вы попросите новый пароль, вы найдете его в Mailtrap:

Yii2 Advanced Application Template Using MailTrap for SMTP

Что дальше?

Возможно вам будет интересна серия статей Пишем свой стартап на PHP, в которой используется расширенный шаблон Yii2. Кроме того, если вы заинтересованы в интеграции этого руководства с Yii2 User, ознакомьтесь с руководством по интеграции Yii2 User с расширенным шаблоном и аутентификацией Google (в ближайшее время).

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

Следите за предстоящими учебниками из этой серии про фреймворк Yii2. Я приветствую пожелания по темам и замечания. Вы можете опубликовать их в комментариях ниже или отправить мне по электронной почте на моем веб-сайте Lookahead Consulting.

Если вы хотите узнать, когда выйдет следующий учебник Yii2, подпишитесь на меня @reifman в Twitter или проверьте мою страницу инструктора. Моя страница инструктора будет включать все статьи из этой серии, как только они будут опубликованы.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.