Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Разработка веб-приложений в Yii 2

Покупка
Артикул: 644051.03.99
Доступ онлайн
519 ₽
В корзину
Yii — это высокопроизводительный фреймворк, используемый для быстрой разработки веб-приложений на PHP. Он хорошо спроектирован, имеет прекрасную поддержку, его легко изучить и легко сопровождать. Эта книга на практических примерах покажет вам самые важные возможности Yii 2. Сквозь всю книгу проходит пример построения реального приложения — каждая глава представляет новую функциональность и показывает приёмы тонкой настройки. Вместо того, чтобы пытаться быть всеобъемлющим справочником по Yii 2, издание является руководством по тем сведениям, которые важно знать практикующему разработчику. Издание предназначено для веб-разработчиков как уже знакомых с Yii, так и начинающих пользователей фреймворка.
Сафронов, М. Разработка веб-приложений в Yii 2 : практическое руководство / М. Сафронов ; пер. с англ. — 2-е изд. - Москва : ДМК Пресс, 2023. - 393 с. - ISBN 978-5-89818-585-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/2107949 (дата обращения: 07.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Разработка веб-приложений 
в Yii 2

Марк Сафронов
Web Application 
Development 
with Yii 2 and PHP

Mark Safronov,  Jeffrey Winesett
Разработка 
веб-приложений в Yii 2

Марк Сафронов

Москва, 2023

2-е издание, электронное
УДК 004.738.5:004.45Yii
ББК 32.973.202-018.2
C21

C21
Сафронов, Марк.
Разработка веб-приложений в Yii 2 / М. Сафронов ; пер. с англ. — 2-е изд., 
эл. — 1 файл pdf : 393 с. — Москва : ДМК Пресс, 2023. — Систем. требования: 
Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.

ISBN 978-5-89818-585-5

Yii — это высокопроизводительный фреймворк, используемый для быстрой разработки 
веб-приложений на PHP. Он хорошо спроектирован, имеет прекрасную 
поддержку, его легко изучить и легко сопровождать. Эта книга на практических 
примерах покажет вам самые важные возможности Yii 2. Сквозь всю книгу проходит 
пример построения реального приложения — каждая глава представляет новую 
функциональность и показывает приёмы тонкой настройки. Вместо того, чтобы пытаться 
быть всеобъемлющим справочником по Yii 2, издание является руководством 
по тем сведениям, которые важно знать практикующему разработчику.
Издание предназначено для веб-разработчиков как уже знакомых с Yii, так и 
начинающих пользователей фреймворка.

УДК 004.738.5:004.45Yii 
ББК 32.973.202-018.2

Электронное издание на основе печатного издания: Разработка веб-приложений в Yii 2 / 
М. Сафронов ; пер. с англ. — Москва : ДМК Пресс, 2015. — 392 с. — ISBN 978-5-97060-252-2. — 
Текст : непосредственный.

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

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами 
защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.


ISBN 978-5-89818-585-5
© 2014 Packt Publishing
©  Оформление, издание, 
ДМК Пресс, 2015
Содержание

Вступительное слово от разработчика Yii  ..............................10
Об авторах .......................................................................11
Предисловие ....................................................................12

Глава 1. Начинаем .............................................................18
Базовое приложение .........................................................................................................18
Установка базового шаблона приложения...........................................................18
Подробности о базовом шаблоне приложения ..................................................21
Проверка требований к системе ...................................................................................22
Расширенный шаблон приложения ............................................................................23
Установка расширенного шаблона приложения ...............................................23
Подробности о расширенном шаблоне приложения .......................................25
Итоги ......................................................................................................................................27

Глава 2. Создаём приложение с Yii 2 вручную .........................28
Этап проектирования .......................................................................................................29
Поставленная задача ...................................................................................................29
Проектирование предметной модели ....................................................................29
Целевая функциональность ......................................................................................31
Начальная подготовка ................................................................................................32
Настройка управления проектом............................................................................32
Установка средств тестирования .............................................................................33
Настройка конвейера развёртывания ...................................................................36
Добавление фреймворка Yii в наше приложение ...................................................41
Первый тест через всё приложение ........................................................................41
Установка Yii 2 на чистую базу кода ......................................................................48
Введение в соглашения Yii ........................................................................................49
Строим фреймворк кода ............................................................................................50
Добавляем контроллер ...............................................................................................52
Облегчение отладки возможных ошибок ............................................................53
Создаём слои данных и приложения ..........................................................................54
Определение модели клиента на слое данных ...................................................55
Подготовка базы данных ............................................................................................56
ORM в Yii ........................................................................................................................60
Отделяемся от ORM....................................................................................................63
Создание пользовательского интерфейса .................................................................65
Пользовательский интерфейс добавления клиента .........................................65
Вводный курс маршрутизации ................................................................................67
Шаблоны .........................................................................................................................68
Завершение интерфейса добавления клиента ....................................................69
Виджеты ...........................................................................................................................72
Пользовательский интерфейс списка клиентов ................................................72
Пользовательский интерфейс запроса к БД .......................................................74
Использование приложения ..........................................................................................75
Итоги ......................................................................................................................................77

Глава 3. Автоматическая генерация кода ...............................79
Определение модели данных для работы ..................................................................79
 Содержание

Использование Gii .............................................................................................................80
Установка Gii в приложение .....................................................................................80
Создаём код для класса модели ...............................................................................82
Создаём CRUD ..............................................................................................................84
Завершающие штрихи ......................................................................................................87
Создаём новый шаблон для поддержки созданных Gii страниц .................87
Обзор созданного пользовательского интерфейса .................................................89
«За» и «против» автоматической генерации классов ...........................................93
Итоги ......................................................................................................................................94

Глава 4. Рендерер ..............................................................95
Анатомия отрисовки в Yii ...............................................................................................95
Компоненты приложения ...............................................................................................97
Компонент представления ............................................................................................100
Алгоритм поиска файлов представлений ..........................................................100
Алгоритм поиска файла шаблона .........................................................................103
Внутренности процесса отрисовки файла представления ...........................105
Ручная настройка отрисовщиков ...............................................................................106
Ручная настройка компоновщика отклика .............................................................112
ВОЗМОЖНОСТЬ: пакеты материалов ..................................................................117
Пакет материалов с файлами из произвольного каталога ...........................117
Публикация материалов ..........................................................................................118
Пакет материалов с файлами из доступного из Сети каталога ..................120
Ручная регистрация файлов CSS и Javascript  .................................................121
Размещение файлов Javascript в пакетах материалов ...................................123
Создаём свой пакет материалов ............................................................................124
ВОЗМОЖНОСТЬ: темы ..............................................................................................125
Создание своей «снежной» темы ..........................................................................125
Виджеты ..............................................................................................................................128
Итоги ....................................................................................................................................129

Глава 5. Аутентификация ..................................................130
Анатомия входа пользователя в систему в Yii .......................................................130
Механика входа в систему по логину и паролю в целом ...................................131
Создание интерфейса управления пользователями ............................................133
Приёмочные тесты для интерфейса манипулирования 
пользователями ...........................................................................................................133
Таблица в БД для хранения записей о пользователях ..................................135
Создание кода модели и CRUD при помощи Gii ............................................135
Удаляем поле пароля из автоматически сгенерированного кода ..............136
Хэширование пароля при сохранении записи пользователя ...........................136
Функциональные тесты для хэширования паролей ......................................137
Реализация хэширования паролей в Active Record .......................................140
Превращение UserRecord в Identity ..........................................................................143
Создание интерфейса входа в систему .....................................................................146
Спецификация аутентификации пользователя ...............................................146
Создание индикатора аутентификации ..............................................................149
Функциональность формы входа .........................................................................150
Функциональность выхода из системы и подведение итогов ....................155
Итоги ....................................................................................................................................155
Содержание  7

Глава 6. Авторизация пользователей и контроль доступа .......157
Контроль доступа с использованием состояния аутентификации 
пользователя ......................................................................................................................157
Возможность: методы-перехватчики у класса контроллера .......................158
Обработка исключений в Yii 2 ...............................................................................160
ВОЗМОЖНОСТЬ: фильтры действий контроллеров .................................164
Контроль доступа на основе ролей ............................................................................168
Защита администрирования CRM от пользователей CRM .............................169
Установка предопределённых пользователей ..................................................170
Менеджеры RBAC в Yii ............................................................................................172
Тесты для нашей иерархии ролей .........................................................................174
Установка иерархии ролей ......................................................................................176
Тест контроля доступа в контроллерах ...............................................................179
Фильтр контроля доступа .......................................................................................181
Применение контроля доступа к сайту...............................................................183
Итоги ....................................................................................................................................187

Глава 7. Модули ..............................................................189
Модули Yii ..........................................................................................................................189
Неформальное понятие «достижимости» .........................................................190
Исследование сложностей конфигурации модулей на глупых 
примерах ........................................................................................................................191
Модуль отладки ..........................................................................................................196
Построение модуля API ................................................................................................199
Построение набора тестов для проверки API ...................................................199
Определение требований к модулю API в виде автоматических 
тестов ..............................................................................................................................202
Перемещение действий контроллера в отдельный модуль .........................206
Ретроспектива о модулях, упомянутых в предыдущих главах ........................208
Итоги ....................................................................................................................................210

Глава 8. Поведение в целом...............................................211
ВОЗМОЖНОСТЬ: журнал событий .......................................................................211
Сохранение сообщений журнала ..........................................................................213
Установка компонента отправки электронной почты для отправки 
сообщений журнала ...................................................................................................215
Чтение сохранённых записей журнала ...............................................................216
ВОЗМОЖНОСТЬ: профилирование ......................................................................220
Подробности обработки ошибок ................................................................................225
ВОЗМОЖНОСТЬ: действие контроллера, обрабатывающее 
ошибки ...........................................................................................................................227
Список встроенных исключений ..........................................................................229
Кэширование .....................................................................................................................230
ВОЗМОЖНОСТЬ: компонент кэша ..................................................................230
ВОЗМОЖНОСТЬ: кэширование запросов к базе данных .........................234
ВОЗМОЖНОСТЬ: кэширование фрагментов страницы ...........................235
ВОЗМОЖНОСТЬ: кэширование страницы целиком ..................................235
ВОЗМОЖНОСТЬ: кэширование запроса заголовками HTTP  ...............237
 Содержание

Минимизация материалов ............................................................................................238
Итоги ....................................................................................................................................246

Глава 9. Создание расширения ..........................................247
Идея расширения .............................................................................................................247
Создание содержимого для расширения .................................................................248
Подготовка шаблонного кода для расширения ...............................................249
ВОЗМОЖНОСТЬ: бутстреппинг .......................................................................250
ВОЗМОЖНОСТЬ: регистрация расширений ................................................251
Создание бутстреппинга для нашего расширения – тайное 
присоединение контроллера ...................................................................................252
Делаем расширение устанавливаемым как... хм... расширение .......................254
Подготовка корректного манифеста composer.json ........................................257
Настройка репозиториев .........................................................................................259
Итоги ....................................................................................................................................265

Глава 10. События ...........................................................266
Автоматическая пометка записей в БД меткой времени 
и ID пользователя ............................................................................................................266
Тест создания пользователя ....................................................................................267
Тестовый случай обновления записи о клиенте ..............................................270
Подготовка полей в базе данных ...........................................................................272
Использование поведений «timestamp» и «blameable» .................................273
ВОЗМОЖНОСТЬ: поведение ...................................................................................276
ВОЗМОЖНОСТЬ: события .......................................................................................279
Встроенные события .......................................................................................................284
События класса \yii\base\Application ................................................................285
События класса \yii\base\Controller ...................................................................285
События класса \yii\base\Module ........................................................................286
События класса \yii\base\View .............................................................................286
События класса \yii\web\View .............................................................................287
События класса \yii\base\Model ..........................................................................288
События класса \yii\db\BaseActiveRecord .......................................................288
События класса \yii\db\Connection ....................................................................290
События класса \yii\web\Response .....................................................................290
События класса \yii\web\User ..............................................................................290
События класса \yii\mail\BaseMailer .................................................................291
Итоги ....................................................................................................................................292

Глава 11. Таблица ............................................................293
Избавление от слоя предметной области ................................................................293
Дизайн списка клиентов ................................................................................................294
Создание активных записей телефонов, адресов и адресов 
электронной почты ....................................................................................................295
Создание общего базового контроллера для подчинённых моделей .......298
Создание отношений между моделью клиента и подчинёнными 
моделями .......................................................................................................................301
ВОЗМОЖНОСТЬ: виджеты ......................................................................................304
Создание страницы списка клиентов........................................................................306
Содержание  9

Создание базового GridView для клиентов .......................................................307
Изменение формата содержимого колонки ......................................................308
ВОЗМОЖНОСТЬ: компонент форматирования ..........................................310
Создание преднастроенной колонки GridView ...............................................314
Сжатие подчинённых моделей в одну колонку ...............................................321
ВОЗМОЖНОСТЬ: колонки GridView ..............................................................322
Реализация фильтрации в GridView ...................................................................324
Реализация сортировки в GridView.....................................................................330
Итоги ....................................................................................................................................336

Глава 12. Маршрутизация .................................................337
Продвинутый курс маршрутизации ..........................................................................337
ВОЗМОЖНОСТЬ: маршрутизация с использованием имён модулей, 
контроллеров и действий ..............................................................................................339
Фундаментальные правила работы с URL в Yii 2...........................................340
ВОЗМОЖНОСТЬ: создание URL в Yii 2 .........................................................341
Преднастроенные маршруты с использованием конфигурации .....................342
ВОЗМОЖНОСТЬ: правила URL........................................................................342
Преднастроенные маршруты с использованием классов правил URL.........345
Итоги ....................................................................................................................................348

Глава 13. Совместная работа .............................................349
Конструирование конфигурации ...............................................................................349
Добавление локальных переопределений в конфигурацию .......................351
Консольное приложение ...............................................................................................355
Преднастроенные консольные команды ............................................................356
Миграции базы данных ..................................................................................................359
Создание преднастроенных шаблонов для миграций базы данных .........364
Итоги ....................................................................................................................................366

Приложение А. Настройка развёртывания 
с использованием Vagrant .................................................368
Планирование ...................................................................................................................369
Начальная настройка ......................................................................................................370
Тонкая настройка виртуальной машины .................................................................371
Подготовка гостевой ОС ..........................................................................................371
Подготовка базы данных и веб-сервера ..............................................................373
Подготовка приложения ..........................................................................................373
Использование виртуальной машины в качестве локальной цели 
развёртывания ...................................................................................................................374

Приложение В. Пример Active Form .....................................377
Создание формы редактирования клиента .............................................................377
ВОЗМОЖНОСТЬ: Active Query .........................................................................378
Настройка автоматически созданной формы ...................................................380
Передача идентификатора клиента в подчинённые модели .......................386
Возвращение в форму редактирования клиента после 
редактирования подчинённой модели ................................................................388
Преднастроенное значение колонки адреса ......................................................389
Вступительное слово 
от разработчика Yii

Я слежу за всеми новыми материалами по Yii и был обрадован и удивлён 
появлению книги по Yii 2.0 ещё до релиза фреймворка. Финальная 
английская версия ушла в печать, в то время как во фреймворке 
были сделаны довольно серьёзные изменения, и по этому поводу я 
был настроен несколько скептически: а вдруг там устаревшая или неточная 
информация?
Опасения не оправдались: материал был действительно хороший, 
в книге показаны как возможности фреймворка, так и лучшие практики 
разработки. Да, были небольшие недочёты, но в общем всё было 
отлично.
Когда я узнал, что готовится перевод книги на русский, опасения 
вернулись, но оказались напрасными: перевод делал сам автор, попутно 
обновляя то, что успело поменяться, и исправляя те неточности, 
что всё-таки пробрались в англоязычную версию.
В итоге получился действительно хороший материал, который поможет 
как познакомиться со второй версией фреймворка, так и улучшить 
свои навыки и знания применительно к разработке в целом.
Единственное, что стоит учесть, – книга не для новичков в программировании 
в целом. Предполагается, что читатель знаком с командной 
строкой, системами контроля версий, тестированием и может 
ориентироваться в исходном коде.
Александр Макаров, 
Yii core team
Об авторе

Сафронов Марк – профессиональный разработчик веб-прило же ний 
из Российской Федерации, с опытом и интересами в широком спектре 
языков и технологий программирования. Построил и участвовал в 
создании различных типов веб-приложений, от чисто вычислительного 
характера до полноценных интернет-магазинов. Является также 
сторонником следования современному передовому опыту разработки, 
основанному на тестировании и принципах чистого, сопровождаемого 
кода.
В данный момент работает сотрудником компании Clevertech над 
веб-приложениями, основанными на Yii. Некоторое время являлся 
сопровождающим популярного расширения Yii под названием 
YiiBooster.
Ранее, в 2008 году, он перевёл книгу «Visual Prolog 7.1 for Tyros», 
за авторством Эдуардо Коста (Eduardo Costa), на русский язык с совершенно 
новым цветным оформлением. В 2013 году, в соавторстве 
с Джейкобом Маммом (Jacob Mumm), написал книгу «Instant Yii 
Application Development Starter» от Packt Publishing.
Предисловие

Эта книга — руководство, описывающее процесс постепенной, основанной 
на тестах разработки веб-приложения с помощью языка PHP 
и второй версии Yii 2, фреймворка приложений для PHP.
Yii 2 можно найти по адресу http://www.yiiframework.com/. Это 
фреймворк приложений на языке PHP, основанный на композитном 
паттерне Модель–Вид–Контроллер. Он подходит для построения 
как приложений командной строки, так и веб-приложений, однако 
состав его возможностей делает его наиболее полезным при разработке 
именно веб-приложений. Он содержит несколько средств для 
автоматической генерации исходного кода, включая создатель полноценных 
Create-Read-Update-Delete (CRUD) интерфейсов. Он в значительной 
степени полагается на соглашения, выраженные в его настройках 
по умолчанию.
В целом если всё, что вам нужно – это изощрённый интерфейс для 
нижележащей базы данных, то, возможно, вы не найдёте ничего лучше, 
чем Yii. Однако, учитывая широкие возможности по настройке, 
вы можете в конечном счёте построить приложение любого типа.
Вторая версия этого фреймворка опирается на последние улучшения 
в инфраструктуре PHP, скопившиеся с течением лет. В качестве 
основного метода установки используется Composer (см. https://
getcomposer.org), стандарты PSR уровней 1, 2 и 4 от PHP Framework 
Interop Group (см. http://www.php-fig.org/) и возможности PHP 5.4 и 
выше, такие как сокращённый синтаксис массивов и замыкания.

Что включено в эту книгу

Глава 1 «Начинаем» покрывает простейшие методы развёртывания 
рабочего веб-приложения полностью «из ничего», имея только рабочую 
станцию, стек LAMP и подключение к Сети.

Глава 2 «Создаём приложение с Yii 2 вручную» показывает, как 
можно, используя Yii 2, с нуля реализовать веб-приложение с одной 
работающей, оттестированной функциональной единицей.

Глава 3 «Автоматическая генерация кода» показывает, как можно 
реализовать работающую оттестированную единицу функциональности 
в уже существующем веб-приложении, используя только возможности 
автоматической генерации кода, не написав ни единой 
строчки кода вручную.
Предисловие  13

Глава 4 «Рендерер» описывает детали того, как фреймворк конструирует 
свой вывод для передачи его пользователю, а также показывает 
некоторые трюки для внесения изменений в этот процесс.

Глава 5 «Аутентификация» обсуждает инструменты аутентификации 
посетителей, то есть удостоверения их личности.

Глава 6 «Авторизация пользователей и контроль доступа» рассказывает 
о путях контроля доступа посетителей и в особенности о системе 
контроля доступа, основанного на ролях (RBAC).

Глава 7 «Модули» возвращается от конкретных возможностей 
фреймворка к его основам. Здесь мы ясно поймём внутреннюю структуру 
и логику приложения, основанного на Yii 2.

Глава 8 «Поведение в целом» говорит о некоторых инфраструктурных 
возможностях, влияющих на всё приложение в целом.

Глава 9 «Создание расширения» говорит, как сделать расширение 
для Yii и подготовить его так, чтобы его можно было установить так 
же просто, как и расширения, включённые в базовую поставку самого 
фреймворка.

Глава 10 «События» исследует подробности системы внутри Yii 2, 
которая позволяет нам присоединить нестандартное поведение ко 
множеству действий, которые приложение обычно совершает самостоятельно, 
такие как извлечение записей из базы данных или ренде-
ринг файла представления.

Глава 11 «Таблица» имеет два назначения. Во-первых, она объясняет 
мощный виджет GridView, который позволяет нам относительно 
легко создавать сложные интерфейсы на основе таблиц. Во-вторых, 
она показывает иной подход к разработке приложений на Yii 2, более 
обыкновенный в его сообществе, так что вы сможете увидеть как преимущества, 
так и недостатки обоих подходов.

Глава 12 «Маршрутизация» объясняет верхний уровень фреймвор-
ка: то, как он, собственно, откликается на HTTP-запросы от посетителей.


Глава 13 «Совместная работа» завершает книгу, представляя методы, 
которые помогут вам сопровождать исходный код приложения, 
основанного на Yii, в условиях, когда над ним работает несколько разработчиков.


Приложение A «Настройка развёртывания с Vagrant» показывает 
простой способ создания виртуальной машины для локальной разработки, 
которую вы можете использовать для запуска примеров из 
этой книги.
 Предисловие

Приложение B «Пример использования Active Form» содержит 
расширение к главе 11, в которой мы используем другой мощный 
элемент управления, включённый в Yii, а именно виджет ActiveForm. 
Это было исключено из одиннадцатой главы, потому что напрямую 
с виджетом GridView данный виджет не связан, но мы также и не могли 
полностью проигнорировать его. Без ActiveForm тот функционал, 
который строится в главе 11, останется незавершённым.
Начиная со второй главы и до конца мы будем работать с одним 
и тем же исходным кодом. Каждая последующая глава продолжает 
работу, начатую в главе перед ней. По этой причине ожидается, что 
книга будет прочитана последовательно, без пропуска глав или чтения 
их в произвольном порядке.

Для кого эта книга

Текст нацелен на квалифицированных разработчиков программного 
обеспечения, желающих быстро оценить, удовлетворяет ли фреймворк 
Yii 2 их потребностям и в особенности рабочему процессу. Это не справочник, 
а скорее путеводитель. Более того, ожидается, что читатель 
в качестве дополнительного материала всегда будет иметь под рукой 
исходный код и официальную документацию от этого фреймворка.
Мы ожидаем относительно высокую квалификацию от читателя, 
так как некоторые базовые концепции разработки, такие как POSIX-
совместимая командная строка, система контроля версий, конвейер 
развёртывания (deployment pipeline), автоматические тесты и способность 
ориентироваться в исходном коде по полным именам классов, 
подразумеваются как очевидные и не требующие объяснений.

Что вам понадобится для этой книги

Рабочая станция с полным стеком LAMP. То есть имеющая веб-сервер 
Apache, систему управления базами данных MySQL и среду PHP, 
установленные на какой-либо дистрибутив, основанный на Linux. 
Если читатель достаточно подкован, любая из этих программ, за исключением 
PHP, очевидно, может быть заменена на аналоги других 
поставщиков.
Вам придётся использовать PHP версий 5.4 и выше, потому что это 
требование для самого Yii 2, и в целом больше нет никакой необходимости 
использовать более старые версии этого языка.
Предисловие  15

Даже если вы не используете POSIX-совместимую операционную 
систему, такую как дистрибутив, основанный на Linux, или же Mac 
OS X, вам необходим интерпретатор командной строки, подобный 
Bash, так как все примеры команд командной строки в этой книге 
подразумевают именно его.
Для того чтобы скачать множество необходимых библиотек исходного 
кода, используемых в этой книге, вам потребуется соединение 
с Интернетом. Даже если вы ничего не будете обновлять впоследствии, 
вы скачаете примерно 320 Мб библиотек, так что мобильная 
связь, возможно, вам не подойдёт.

Соглашения

В этой книге вы найдёте несколько отличительных стилей текста, 
подчёркивающих информацию разного рода. Вот несколько примеров 
таких стилей, а также объяснение их значения.
Код в тексте, названия баз данных, названия папок и файлов, расширения 
файлов, примеры URL, пользовательский ввод и никнеймы 
в Twitter изображаются следующим образом: «Теперь выполните следующую 
команду, для того чтобы создать подкаталог под названием 
basic и заполнить его базовым шаблоном приложения».
Блоки кода оформляются следующим образом:

require_once(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
new yii\web\Application(
   require(__DIR__ . '/../../confi g/web.php')
);

Когда мы хотим привлечь ваше внимание к определённой части 
блока кода, соответствующие строчки или символы выделяются жирным 
шрифтом:

require_once(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
new yii\web\Application(
   require(__DIR__ . '/../../confi g/web.php')
);

Любой ввод или вывод командной строки оформляется следующим 
образом:

$ php composer.phar require --prefer-dist yiisoft/yii2-debug "*"

Новые термины и важные слова выделяются жирным шрифтом. 
Слова, которые вы видите на экране, в меню или в диалоговых окнах, 
упоминаются в тексте, выделенные вот так: «вы должны заполнить 
Доступ онлайн
519 ₽
В корзину