Современный PHP

Практические примеры использования.

Локхарт Дж. «Современный PHP. Новые возможности и передовой опыт» ДМК Пресс, 2016 год. 304 стр. перевод Рагимов Р., O’Reilly (27,2 мб. pdf)

Из книги вы узнаете новых возможностях РНР, как полноценного и многофункционального объектно-ориентированного языка, с пространствами имен и постоянно растущей коллекцией библиотек компонентов. Автор демонстрирует новейшие технологии языка PHP на практике (генераторы, трейты — traits и т.д.). Вы узнаете о передовых подходах в проектировании и конструировании приложений, методах работы с базами данных и обеспечения безопасности (хеширование паролей с помощью bcrypt), порядке проведения тестирования (PHPUnit и Travis CI), отладки и развертывания приложений (с помощью Capistrano). Предполагается, что читатель имеет базовые представления в области ООП, а если вы знакомы с языком РНР, то книга поможет вам расширить свои знания об этом языке программирования. ISBN: 978-5-97060-184-6

Оглавление книги

Содержание.

Часть I. Особенности языка

Глава 1. Новый РНР 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
Включение расширения Zeпd OPcache 54
Настройка расширения Zeпd OPcache 55
Использование расширения Zeпd OPcache 56
Встроенный НТТР-сервер 56
Запуск сервера 57
Настройка сервера 57
Сценарии маршрутизации 58
Обнаружение встроенного сервера 58
Недостатки 59
Что дальше 59

Часть II. Передовые технологии

Глава 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
Использование РНР-компонентов 88
Установка Composer 89
Как использовать Composer 90
Пример проекта 92
Composer и закрытые хранилища 96
Создание РНР-компонентов 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
Программный интерфейс хеширования паролей для РНР 5.5.0 124
Даты, время и часовые пояса 125
Установка часового пояса по умолчанию 125
Класс DateTime 125
Класс Datelпterval 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. Развертывание, тестирование и настройка

Глава 6. Хостинг 172
Разделяемые серверы 172
Виртуальный выделенный сервер 173
Выделенный сервер 17 4
PaSS 175
Выбор тарифного плана хостинга 176

Глава 7. Комплектование 177
Наша цель 178
Настройка сервера 178
Первый вход 178
Обновление программного обеспечения 179
Непривилегированный пользователь 180
SSН-аутентификация с помощью парных ключей 181
Отключение парольной аутентификации и запрет входа пользователя root 183
PHP-FPM 184
Установка 184
Глобальная конфигурация 185
Настройка пулов 186
пginх 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
Класс теста WhoviaпTest 224
Запуск тестов 227
Охват кода 228
Непрерывное тестирование с помощью Travis CI 229
Установка 229
Запуск 230
Дополнительные материалы 231
Что дальше 231

Глава 11. Профилирование 232
Когда следует использовать профилировщик 232
Типы профилировщиков 233
Xdebug 233
Настройка 234
Включение 235
Анализ 235
XHProf 235
Установка 236
XHGUI 236
Настройка 237
Включение 237
Профилировщик New Relic 238
Профилировщик Blackfire 238
Дополнительные материалы 238
Что дальше 239

Глава 12. HHVM и Hack 240
HHVM 240
РНР в Facebook 241
Совместимость HHVM с Zend Engine 243
Будет ли HHVM правильным выбором для меня? 243
Установка 244
Настройка 245
Расширения 246
Мониторинг HHVM с помощью Supervisord 246
HHVM, FastCGI и Nginx 248
Язык Hack 250
Перевод с РНР на Hack 250
Что такое типы? 251
Статическая типизация 252
Динамическая типизация 253
Двойной подход языка Hack 254
Контроль типов в Hack 254
Режимы Hack 255
Синтаксис Hack 256
Структуры данных Hack 258
HHVM и Hack против РНР 259
Дополнительные материалы 261

Глава 13. Сообщество 262
Местная группа РНР-разработчиков 262
Конференции 262
Наставничество 263
Будьте в курсе 263
Сайты 263
Списки рассылок 263
Твиттер 263
Подкасты 263
Юмор 264

Приложения.

Приложение А. Установка PHP 265
Linux 265
Менеджеры пакетов 265
Ubuntu 14.04 LTS 266
CentOS 7 268
МАМР 270
Homebrew 273
Сборка из исходных текстов 277
Получение исходного кода 278
Windows 284
Скомпилированные файлы 285
WAMP 285
Zend Server 286

Приложение Б. Локальная среда разработки 287
VirtualBox 288
Vagrant 289
Команды 289
Боксы 290
Инициализация 290
Комплектование 291
Синхронизация каталогов 292
Быстрый старт 293
Предметный указатель 295
Об обложке 303

Скачать техническую литературу бесплатно27,2 мб. pdf

Похожая литература