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

Современный PHP. Новые возможности и передовой опыт

Покупка
Артикул: 816367.01.99
Доступ онлайн
519 ₽
В корзину
Из книги вы узнаете, как PHP превратился в зрелый полнофункциональный объектно-ориентированный язык, с пространствами имен и постоянно растущей коллекцией библиотек компонентов. Автор демонстрирует новые возможности языка на практике. Вы узнаете о передовых методах проектирования и конструирования приложений, работы с базами данных, обеспечения безопасности, тестирования, отладки и развертывания. Если вы уже знакомы с языком PHP и желаете расширить свои знания о нем, то эта книга для вас!
Локхарт, Д. Современный PHP. Новые возможности и передовой опыт : практическое руководство / Д. Локхарт ; пер. с англ. Р. Н. Рагимова. - 2-е изд. - Москва : ДМК Пресс, 2023. - 305 с. - ISBN 978-5-89818-349-3. - Текст : электронный. - URL: https://znanium.com/catalog/product/2102636 (дата обращения: 10.12.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Джош Локхарт

Современный 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

Доступ онлайн
519 ₽
В корзину