Современный PHP. Новые возможности и передовой опыт
Покупка
Тематика:
Проектирование, отладка и тестирование ПО. Вспомогательные средства проектирования. CASE-технологии
Издательство:
ДМК Пресс
Автор:
Локхарт Джош
Перевод:
Рагимов Р. Н.
Год издания: 2023
Кол-во страниц: 305
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-89818-349-3
Артикул: 816367.01.99
Из книги вы узнаете, как PHP превратился в зрелый полнофункциональный объектно-ориентированный язык, с пространствами имен и постоянно растущей коллекцией библиотек компонентов. Автор демонстрирует новые возможности языка на практике. Вы узнаете о передовых методах проектирования и конструирования приложений, работы с базами данных, обеспечения безопасности, тестирования, отладки и развертывания.
Если вы уже знакомы с языком PHP и желаете расширить свои знания о нем, то эта книга для вас!
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Проектирование, отладка и тестирование ПО. Вспомогательные средства проектирования. CASE-технологии
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Джош Локхарт Современный PHP Новые возможности и передовой опыт
Modern PHP Josh Lockhart Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo New Features and Good Practices
Москва, 2023 Современный PHP Джош Локхарт Новые возможности и передовой опыт 2-е издание, электронное
УДК 004.738.5:004.438РНР ББК 32.973.4 Л73 Л73 Локхарт, Джош. Современный PHP. Новые возможности и передовой опыт / Дж. Локхарт ; пер. с англ. Р. Н. Рагимова. — 2-е изд., эл. — 1 файл pdf : 305 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-349-3 Из книги вы узнаете, как PHP превратился в зрелый полнофункциональный объектно-ориентированный язык, с пространствами имен и постоянно растущей коллекцией библиотек компонентов. Автор демонстрирует новые возможности языка на практике. Вы узнаете о передовых методах проектирования и конструирования приложений, работы с базами данных, обеспечения безопасности, тестирования, отладки и развертывания. Если вы уже знакомы с языком PHP и желаете расширить свои знания о нем, то эта книга для вас! УДК 004.738.5:004.438РНР ББК 32.973.4 Электронное издание на основе печатного издания: Современный PHP. Новые возможности и передовой опыт / Дж. Локхарт ; пер. с англ. Р. Н. Рагимова. — Москва : ДМК Пресс, 2016. — 304 с. — ISBN 978-5-97060-184-6. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-349-3 © 2015 Josh Lockhart © Оформление, перевод на русский язык, ДМК Пресс, 2016
Лорел посвящается
Оглавление Об авторе ........................................................ 13 Предисловие ................................................... 14 Что нужно знать об этой книге ............................................................... 14 Структура книги .................................................................................... 15 Соглашения, принятые в этой книге ...................................................... 16 Использование примеров кода ............................................................. 16 Как связаться с нами ............................................................................. 17 Благодарности ...................................................................................... 17 ЧАСТЬ I. Особенности языка ........................................... 19 Глава 1. Новый PHP ........................................... 20 Прошлое ....................................................................................... 20 Настоящее .................................................................................... 21 Будущее ........................................................................................ 23 Глава 2. Особенности ........................................ 25 Пространства имен ....................................................................... 25 Зачем нужны пространства имен .......................................................... 28 Объявление .......................................................................................... 28 Импорт и псевдонимы .......................................................................... 30 Полезные советы .................................................................................. 32 Интерфейсы .................................................................................. 34 Трейты .......................................................................................... 39 Зачем нужны трейты ............................................................................. 39 Как создать трейт ................................................................................. 41 Как использовать трейт ......................................................................... 43 Генераторы ................................................................................... 44 Создание генератора ............................................................................ 45 Использование генератора ................................................................... 46 Замыкания .................................................................................... 48 Создание .............................................................................................. 49 Прикрепление состояния ...................................................................... 50 Расширение Zend OPcache ........................................................... 53
Оглавление Включение расширения Zend OPcache ................................................. 54 Настройка расширения Zend OPcache .................................................. 55 Использование расширения Zend OPcache ........................................... 56 Встроенный HTTP-сервер ............................................................. 56 Запуск сервера ..................................................................................... 57 Настройка сервера ............................................................................... 57 Сценарии маршрутизации .................................................................... 58 Обнаружение встроенного сервера ...................................................... 58 Недостатки ........................................................................................... 59 Что дальше .................................................................................... 59 ЧАСТЬ II. Передовые технологии ...................................... 61 Глава 3. Стандарты ........................................... 62 PHP-FIG приходит на помощь ........................................................ 63 Совместимость фреймворков ....................................................... 64 Интерфейсы ......................................................................................... 64 Автозагрузка ......................................................................................... 64 Стиль .................................................................................................... 65 Что такое PSR? .............................................................................. 65 PSR-1: Базовый стиль оформления кода ....................................... 66 PSR-2: Строгий стиль оформления кода ........................................ 68 PSR-3: Интерфейс журналирования .............................................. 73 Создание компонента журналирования PSR-3 ...................................... 73 Использование компонента журналирования PSR-3 ............................. 74 PSR-4: Автозагрузка ...................................................................... 75 Почему автозагрузка так важна ............................................................. 76 Модель автозагрузки PSR-4 .................................................................. 77 Как написать автозагрузчик PSR-4 (и почему этого делать не нужно) .... 78 Глава 4. Компоненты ......................................... 80 Почему надо использовать компоненты?....................................... 80 Что представляют собой компоненты? .......................................... 81 Компоненты и фреймворки ........................................................... 83 Не все фреймворки плохи ..................................................................... 84 Использование инструмента, соответствующего задаче ...................... 85 Поиск компонентов ....................................................................... 85 Магазин ................................................................................................ 86 Выбор ................................................................................................... 87 Оставьте отзыв ..................................................................................... 88 Использование PHP-компонентов ................................................. 88 Установка Composer ............................................................................. 89
Оглавление Как использовать Composer .................................................................. 90 Пример проекта .................................................................................... 92 Composer и закрытые хранилища ......................................................... 96 Создание PHP-компонентов .......................................................... 98 Имена производителя и пакета ............................................................. 98 Пространства имен ............................................................................... 99 Организация файловой системы .......................................................... 99 Файл composer.json............................................................................. 100 Файл README ..................................................................................... 103 Реализация компонента ...................................................................... 103 Управление версиями ......................................................................... 106 Размещение на сайте Packagist .......................................................... 106 Использование компонента ................................................................ 107 Глава 5. Передовой опыт .................................. 109 Санирование и проверка ввода, и экранирование вывода ........... 110 Санирование ввода ............................................................................. 110 Проверка данных ................................................................................ 114 Экранирование вывода ....................................................................... 115 Пароли ........................................................................................ 116 Не храните пароли в открытом виде .................................................... 116 Не ограничивайте пароли ваших пользователей ................................. 116 Не отправляйте пароли пользователей по электронной почте ............. 117 Хеширование паролей пользователей с помощью bcrypt .................... 117 Программный интерфейс хеширования паролей ................................ 119 Программный интерфейс хеширования паролей для PHP < 5.5.0........ 124 Даты, время и часовые пояса ...................................................... 125 Установка часового пояса по умолчанию ............................................ 125 Класс DateTime .................................................................................. 125 Класс DateInterval ................................................................................ 127 Класс DateTimeZone ............................................................................ 128 Класс DatePeriod ................................................................................. 129 Компонент nesbot/carbont .................................................................. 130 Базы данных ................................................................................ 131 Расширение PDO ................................................................................ 131 Подключение базы данных и DSN........................................................ 131 Параметризованные запросы ............................................................. 134 Результаты запроса ............................................................................ 137 Транзакции ......................................................................................... 139 Многобайтовые строки ............................................................... 143 Кодировка символов ........................................................................... 144 Отображение данных в кодировке UTF-8 ............................................. 145 Потоки данных ............................................................................ 145 Обертки потоков ................................................................................. 146 Контекст потока .................................................................................. 150 Фильтры потоков ................................................................................ 150
Оглавление Пользовательские фильтры потоков ................................................... 153 Ошибки и исключения ................................................................. 156 Исключения ........................................................................................ 157 Обработчики исключений ................................................................... 161 Ошибки ............................................................................................... 162 Обработчики ошибок .......................................................................... 164 Ошибки и исключения в ходе разработки ............................................ 166 Эксплуатация ...................................................................................... 168 ЧАСТЬ III. Развертывание, тестирование и настройка ......... 171 Глава 6. Хостинг ............................................. 172 Разделяемые серверы ................................................................ 172 Виртуальный выделенный сервер ............................................... 173 Выделенный сервер .................................................................... 174 PaaS ............................................................................................ 175 Выбор тарифного плана хостинга ................................................ 176 Глава 7. Комплектование ................................. 177 Наша цель ................................................................................... 178 Настройка сервера ...................................................................... 178 Первый вход ....................................................................................... 178 Обновление программного обеспечения ............................................ 179 Непривилегированный пользователь .................................................. 180 SSH-аутентификация с помощью парных ключей ............................... 181 Отключение парольной аутентификации и запрет входа пользователя root ............................................................................... 183 PHP-FPM ..................................................................................... 184 Установка ........................................................................................... 184 Глобальная конфигурация ................................................................... 185 Настройка пулов ................................................................................. 186 nginx ............................................................................................ 189 Установка ........................................................................................... 190 Виртуальный хост ............................................................................... 190 Автоматизация комплектования .................................................. 193 Делегирование комплектования ................................................. 194 Дополнительные материалы ....................................................... 194 Что дальше .................................................................................. 195 Глава 8. Настройка .......................................... 196 Файл php.ini ................................................................................ 196 Память ........................................................................................ 197
Оглавление Zend OPcache .............................................................................. 198 Выгрузка файлов ......................................................................... 201 Максимальное время выполнения ............................................... 202 Обслуживание сеансов ............................................................... 203 Буферизация вывода .................................................................. 204 Кэш Realpath ............................................................................... 204 Что дальше .................................................................................. 205 Глава 9. Развертывание ................................... 206 Управление версиями ................................................................. 206 Автоматизация развертывания ................................................... 207 Сделайте развертывание простым ..................................................... 207 Сделайте развертывание предсказуемым .......................................... 207 Сделайте развертывание обратимым ................................................. 207 Capistrano.................................................................................... 207 Как это работает ................................................................................. 208 Установка ........................................................................................... 208 Настройка ........................................................................................... 209 Аутентификация .................................................................................. 211 Подготовка удаленного сервера ......................................................... 211 Обработчики Capistrano ...................................................................... 212 Развертывание приложения ................................................................ 213 Откат к предыдущей версии приложения ............................................ 213 Дополнительные материалы ............................................................... 213 Что дальше .................................................................................. 213 Глава 10. Тестирование ................................... 214 Почему мы тестируем? ................................................................ 214 Когда мы тестируем? ................................................................... 215 Перед ................................................................................................. 215 В процессе ......................................................................................... 215 После .................................................................................................. 216 Что мы тестируем? ...................................................................... 216 Как мы тестируем? ...................................................................... 216 Модульное тестирование .................................................................... 216 Разработка через тестирование (TDD) ................................................ 217 Разработка, основанная на функционировании (BDD) ........................ 217 PHPUnit ....................................................................................... 219 Структура каталогов ........................................................................... 219 Установка PHPUnit .............................................................................. 220 Установка Xdebug ............................................................................... 221 Настройка PHPUnit .............................................................................. 222 Класс Whovian ..................................................................................... 223 Класс теста WhovianTest ...................................................................... 224