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

Yii. Сборник рецептов

Покупка
Артикул: 817027.01.99
Доступ онлайн
559 ₽
В корзину
Данная книга познакомит вас с самыми важными особенностями и внутренними механизмами PHP-фреймворка Yii, что позволит вам использовать его наиболее эффективно. Сборник поможет вам изучить часто упускаемые из вида, но очень полезные особенности фреймворка и повысить свой уровень как разработчика приложений. Наиболее интересные темы касаются разработки приложений и расширений, обработки ошибок, отладки, вопросов безопасности и улучшения производительности. Издание предназначено для веб-разработчиков как уже знакомых с Yii, так и начинающих пользователей фреймфорка.
Макаров, А. С. Yii. Сборник рецептов : учебное пособие / А. С. Макаров ; пер. с англ. — 2-е изд. - Москва : ДМК Пресс, 2023. - 373 с. - ISBN 978-5-89818-583-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/2107947 (дата обращения: 20.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Александр Макаров

Yii.
Сборник рецептов

Более 80 рецептов, 
которые помогут вам 
использовать PHP-фреймворк Yii
.
Yii.
Сборник рецептов

Более 80 рецептов, которые помогут вам 
использовать PHP-фреймворк Yii

Александр Макаров

Москва, 2023

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

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

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

ISBN 978-5-89818-583-1

Данная книга познакомит вас с самыми важными особенностями и внутренними 
механизмами PHP-фреймворка Yii, что позволит вам использовать его наиболее 
эффективно.
Сборник поможет вам изучить часто упускаемые из вида, но очень полезные 
особенности фреймворка и повысить свой уровень как разработчика приложений.
Наиболее интересные темы касаются разработки приложений и расширений, обработки 
ошибок, отладки, вопросов безопасности и улучшения производительности.
Издание предназначено для веб-разработчиков как уже знакомых с Yii, так и 
начинающих пользователей фреймфорка.

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

Электронное издание на основе печатного издания: Yii. Сборник рецептов / А. С. Макаров ; 
пер. с англ. — Москва : ДМК Пресс, 2015. — 372 с. — ISBN 978-5-97060-245-4. — Текст : непосредственный.


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

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


ISBN 978-5-89818-583-1
© 2011 Packt Publishing.
©  Оформление, перевод на русский язык 
ДМК Пресс, 2015
Посвящается русскоязычному сообществу Yii. 
Вы лучшие!
ОГЛАВЛЕНИЕ

Предисловие ............................................. 10

Рецензенты английской версии .................... 11

Благодарности ........................................... 12

Об авторе .................................................. 13

Введение .................................................. 14
Что вы найдёте в данной книге ................................................ 14
Что понадобится для чтения этой книги ................................... 16
На кого рассчитана эта книга ................................................... 17
Соглашения ............................................................................. 17
Обратная связь ........................................................................ 17

Глава 1. Под капотом ................................... 18
Вступление .............................................................................. 18
Использование getters и setters ............................................... 18
Использование событий Yii ...................................................... 21
Использование импорта и автозагрузки .................................. 29
Использование исключений .................................................... 32
Настройка компонентов .......................................................... 35
Настройка виджетов по умолчанию ......................................... 38
Использование коллекций ядра Yii ........................................... 40
Работа с запросами ................................................................. 44

Глава 2. Маршрутизация, контроллеры 
и представления ........................................ 48
Введение ................................................................................. 48
Правила маршрутизации ......................................................... 49
Автоматическая генерация URL-адресов ................................. 52
Регулярные выражения в правилах маршрутизации ................ 56
Правила маршрутизации для статических страниц .................. 60
Добавление правил маршрутизации в рабочее приложение .... 62
Базовый контроллер ................................................................ 66
Оглавление

Подключение внешних действий ............................................. 68
Отображение статических страниц при помощи CViewAction .....71
Использование flash-сообщений ............................................. 73
Контекст контроллера в представлении................................... 74
Повторное использование вложенных представлений ............. 76
Клипы ...................................................................................... 78
Декораторы ............................................................................. 80
Несколько макетов в приложении ............................................ 81
Постраничная разбивка и сортировка данных .......................... 84

Глава 3. AJAX и jQuery .................................. 86
Введение ................................................................................. 86
Загрузка блока через AJAX ...................................................... 86
Управление ресурсами  ........................................................... 91
Подключение ресурсов ............................................................ 96
Работа с JSON ......................................................................... 99
Передача параметров из PHP в JavaScript ............................. 102
Обработка переменного числа полей в форме ...................... 104

Глава 4. Работа с формами ......................... 111
Введение ............................................................................... 111
Пишем свой валидатор .......................................................... 111
Загрузка файлов ................................................................... 114
Добавление CAPTCHA............................................................ 118
Настройка CAPTCHA .............................................................. 122
Создаем виджет для ввода при помощи CInputWidget ............ 125

Глава 5. Тестирование приложений .............. 129
Введение ............................................................................... 129
Настройка тестового окружения ............................................ 129
Написание и запуск юнит-тестов ........................................... 133
Фикстуры .............................................................................. 139
Функциональное тестирование ............................................. 144
Генерация отчетов о покрытии кода ....................................... 149

Глава 6. База данных, Active record и трюки 
с моделями ............................................. 153
Введение ............................................................................... 153
Получение данных из базы данных ........................................ 154
Создание и использование нескольких подключений 
к базам данных ...................................................................... 160
Использование именованных групп условий 
для создания многоязычных моделей .................................... 163
Оглавление

Обработка полей модели с помощью методов-событий 
Active Record ......................................................................... 167
Применение markdown и HTML .............................................. 169
Подсветка кода с помощью Yii ................................................ 172
Автоматический timestamp .................................................... 178
Автоматическое указание автора........................................... 180
Реализация наследования с одной таблицей ......................... 182
Использование CDbCriteria .................................................... 186

Глава 7. Использование компонентов Zii ....... 188
Введение ............................................................................... 188
Использование источников данных ....................................... 188
Использование гридов .......................................................... 195
Использование списков ......................................................... 202
Создание своих столбцов грида ............................................ 206

Глава 8. Расширение Yii ............................. 213
Введение ............................................................................... 213
Создание поведений модели ................................................. 213
Создание компонентов .......................................................... 220
Создание действий контроллера, пригодных 
для повторного использования  ............................................. 224
Создание контроллеров, пригодных для повторного 
использования ...................................................................... 227
Создание виджета ................................................................. 231
Создание консольных команд ................................................ 234
Создание фильтров ............................................................... 237
Создание модулей ................................................................. 239
Создание своего обработчика шаблонов ............................... 246
Подготовка расширений к публикации .................................. 251

Глава 9. Обработка ошибок, отладка и 
журналирование ...................................... 255
Введение ............................................................................... 255
Использование различных маршрутов для журналов ............. 255
Анализ трассировки стека при ошибках ................................. 262
Журналирование и использование контекстной 
информации .......................................................................... 265
Реализация собственного умного обработчика кода 404 ....... 270

Глава 10. Безопасность ............................. 275
Введение ............................................................................... 275
Использование фильтров контроллера .................................. 275
Оглавление

Использование CHtml и CHtmlPurifier для предотвращения 
XSS ........................................................................................ 280
Предотвращение SQL-инъекций ............................................ 285
Предотвращение CSRF .......................................................... 290
Использование RBAC ............................................................ 294

Глава 11. Настройка производительности ..... 302
Введение ............................................................................... 302
Использование передового опыта ......................................... 302
Ускорение управления сессиями ........................................... 308
Использование зависимостей кеша и цепочек ...................... 312
Профилирование приложений с помощью Yii ......................... 318

Глава 12. Использование постороннего кода ...329
Введение ............................................................................... 329
Использование Zend Framework из Yii .................................... 329
Настройка автозагрузчика Yii ................................................. 334
Использование Kohana внутри Yii ........................................... 339
Использование PEAR внутри Yii .............................................. 346

Глава 13. Развертывание ........................... 349
Введение ............................................................................... 349
Изменение структуры директорий Yii ..................................... 349
Перемещение приложения из корневой директории 
сервера ................................................................................. 352
Совместное использование директории фреймворка ........... 355
Перемещение части настроек в отдельные файлы ................. 356
Использование нескольких конфигураций для упрощения 
развертывания ...................................................................... 362
Реализация и исполнение заданий cron ................................. 366
Режим обслуживания ............................................................ 368
ПРЕДИСЛОВИЕ

Когда Александр рассказал мне, что собирается писать сборник рецептов 
по Yii, я задумался, насколько уникальными они будут, ведь в 
то время уже была создана официальная wiki, пополняющаяся силами 
сообщества. Мои опасения были напрасны.
Книга получилась полной информации об эффективном использовании 
фреймворка. Информация была подана настолько методично, 
что вполне могла использоваться как необходимое дополнение к 
полному руководству по Yii. 
В процессе написания Александр просил членов команды Yii высказать 
своё мнение о черновиках и в процессе сумел заинтересовать 
всех нас. Как автор и ведущий разработчик Yii я считаю, что эту книгу 
должен прочитать каждый, кто работает с фреймворком. 
В книге нет формального описания правил разработки. Вместо 
этого она показывает, как программировать на Yii с практической 
точки зрения. Материал особенно пригодится тем, кто работает со 
сжатыми сроками, так как в нём представлено множество решений 
проблем, с которыми разработчики могут столкнуться в своих проектах. 
Тем, кто уже знаком с фреймворком, книга также будет интересна. 
Большинство решений, предстваленных в данной книге, можно 
считать рекомендуемыми официально, так как они прошли тщательное 
рецензирование каждым членом команды Yii. 
Александр показал себя данной книгой и его активным участием 
в проекте Yii как отличный программист и писатель.

Qiang Xue, 
ведущий разработчик фреймворка Yii
РЕЦЕНЗЕНТЫ 
АНГЛИЙСКОЙ ВЕРСИИ

Anatoliy Dimitrov – обладатель сертификата O'Reilly по программированию 
PHP/MySQL и активный член сообщества Yii. Кроме того, 
он опытен в вопросах безопасности веб-приложений. 
В прошлом занимал ведущие технические должности в нескольких 
крупнейших хостинговых компаниях и платёжных системах. 
Имеет за плечами множество успешных фриланс-проектов.

Antonio Ramirez Cobos (tonydspaniard) – программист-самоучка. 
Нырнул в мир программирвоания в процессе изучения «железа» в 
TAFE в Мельбурне. 
До встречи с PHP и чудесами OpenSource успел накопить более 
тринадцати лет опыта с Javascript, C++, Java, ASP.net (C#), Visual 
Basic (COM, COM+) и Dynamic DLL. После знакомства с PHP работал 
исключительно с ним и специализировался на веб-приложениях. 

Любитель Yii, ведёт блог по адресу www.ramirezcobos.com. Активный 
участник форума Yii.

SAKURAI, atsushi – эксперт по микропроцессорам и PHP программист 
уже более десяти лет. В качестве руководителя команды 
разработчиков микропроцессоров занимался в том числе и сайтом 
для их поддержки. Благодаря Yii эффективность разработки в этом 
направлении заметно повысилась. Его главный вклад в Yii – перевод 
документации на японский язык.
БЛАГОДАРНОСТИ

Хочу поблагодарить команду разработчиков Yii, в особенности Qiang 
Xue, Maurizio Domba и Sebastian Thierer, которые рецензировали черновики 
данной книги и поддерживают Yii в отличной форме, постоянно 
его улучшая.
Спасибо Александру Кочетову, Antonio Ramirez Cobos и всем, кто 
присылал замечания как по предварительной версии, так и по первой 
редакции. Ваши замечания очень помогли улучшить книгу. 
Спасибо Qiang Xue и Wei Zhuo за Yii. 
Спасибо Packt Publishing за предложение написать книгу и за то, 
что помогли её закончить.
Огромное спасибо тем, кто помог с русскоязычной версией: Александру 
Бордун, Ивану Левчунец, Сергею Сыцевич, Максиму Фурту-
на и Дмитрию Мовчан. 
Без вас я бы не справился!
ОБ АВТОРЕ

Александр Макаров – опытный инженер из Воронежа, успевший 
попробовать себя в роли PM. Активный участник OpenSource проектов 
и один из разработчиков PHP-фреймворка Yii. 
С 2008 по 2010 годы способствовал росту русскоязычного сообщества 
CodeIgniter. Примерно в то же время начал активно участвовать 
в OpenSource. 
В 2009 году заинтересовался Yii, создал yiiframework.ru и закончил 
перевод официальной документации на русский язык. 
С мая 2010 года присоединился к команде разработчиков фрейм-
ворка. Ведёт блог rmcreative.ru. 
Выступает на различных конференциях. Работает в Stay.com, где 
занимается созданием крутых штук на Yii и не только. 
Увлекается английским и русским языками, дизайном и UX. Любит 
смотреть хорошее кино, путешествовать и фотографировать.
ВВЕДЕНИЕ

Yii – очень гибкий и высокопроизводительный PHP-фреймворк, 
предназначенный для разработки веб-приложений. От небольших 
страничек до масштабируемых приложений уровня предприятия. 
Название фреймворка расшифровывается как Yes It Is, что является 
точным ответом на большинство вопросов, пока ещё не знакомых с 
Yii, разработчиков: «А он быстр?», «Безопасен?», «Подходит ли для 
профессиональной разработки?», «Подойдёт ли для моего следующего 
проекта?». Ответ на все эти вопросы один: «Yes, it is!»
Данный сборник рецептов состоит из 13 независимых глав, каждая 
из которых полна решений, которые помогут вам эффективно 
использовать фреймворк. Вы узнаете о скрытых возможностях, работе 
ядра, создании своих компонент, разработке через тестирование и 
ещё множестве интересных тем.

Что вы найдёте в данной книге

Глава 1. Под капотом
Рассказывает о наиболее интересных возможностях Yii, про которые 
мало говорится в официальном рукводстве: события, импорт и авто-
загрузка классов, исключения, компоненты, настройка виджетов и 
другое.

Глава 2. Маршрутизация, контроллеры 
и представления
О полезных приёмах, относящихся к обработке и постоению URL, 
контроллерам и представлениям. В данной главе описаны правила 
URL, внешние действия контроллера и сами контроллеры, декораторы 
представлений и многое другое.

Глава 3. AJAX и jQuery
Поведает о клиентской части Yii, в которой используется jQuery – самая 
широко применяемая JavaScript-библиотека в мире. Главным образом 
рассматриваются особенности Yii, а не самой jQuery.
Доступ онлайн
559 ₽
В корзину