Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 636228)
Контекстум
Электро-2024

Современный PHP. Новые возможности и передовой опыт (3000,00 руб.)

0   0
Первый авторЛокхарт
ИздательствоМ.: ДМК Пресс
Страниц305
ID836869
АннотацияИз книги вы узнаете, как PHP превратился в зрелый полнофункциональный объектно-ориентированный язык, с пространствами имен и постоянно растущей коллекцией библиотек компонентов. Автор демонстрирует новые возможности языка на практике. Вы узнаете о передовых методах проектирования и конструирования приложений, работы с базами данных, обеспечения безопасности, тестирования, отладки и развертывания. Если вы уже знакомы с языком PHP и желаете расширить свои знания о нем, то эта книга для вас!
ISBN978-5-89818-349-3
Локхарт, Дж. Современный PHP. Новые возможности и передовой опыт / Дж. Локхарт .— Москва : ДМК Пресс, 2023 .— 305 с. — ISBN 978-5-89818-349-3 .— URL: https://rucont.ru/efd/836869 (дата обращения: 22.05.2024)

Предпросмотр (выдержки из произведения)

Современный_PHP._Новые_возможности_и_передовой_опыт.pdf
Стр.5
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Стр.12
Стр.13
Современный_PHP._Новые_возможности_и_передовой_опыт.pdf
УДК 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
Стр.5
Оглавление Об авторе ........................................................ 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
Стр.7
Оглавление 7 Включение расширения 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
Стр.8
8 Оглавление Как использовать 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
Стр.9
Оглавление 9 Пользовательские фильтры потоков ................................................... 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
Стр.10
10 Оглавление 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
Стр.11
Оглавление 11 Запуск тестов ..................................................................................... 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 PHP в Facebook ................................................................................... 241 Совместимость HHVM с Zend Engine ................................................... 243 Будет ли HHVM правильным выбором для меня? ................................ 243 Установка ........................................................................................... 244 Настройка ........................................................................................... 245 Расширения ........................................................................................ 246 Мониторинг HHVM с помощью Supervisord .......................................... 246 HHVM, FastCGI и Nginx ........................................................................ 248 Язык Hack.................................................................................... 250 Перевод с PHP на Hack ....................................................................... 250 Что такое типы? .................................................................................. 251 Статическая типизация ....................................................................... 252 Динамическая типизация .................................................................... 253 Двойной подход языка Hack ................................................................ 254 Контроль типов в Hack ........................................................................ 254 Режимы Hack ..................................................................................... 255 Синтаксис Hack .................................................................................. 256
Стр.12
12 Оглавление Структуры данных Hack ....................................................................... 258 HHVM и Hack против PHP .................................................................... 259 Дополнительные материалы ....................................................... 261 Глава 13. Сообщество ..................................... 262 Местная группа PHP-разработчиков ........................................... 262 Конференции .............................................................................. 262 Наставничество ........................................................................... 263 Будьте в курсе ............................................................................. 263 Сайты ................................................................................................. 263 Списки рассылок ................................................................................ 263 Твиттер ............................................................................................... 263 Подкасты ............................................................................................ 263 Юмор .................................................................................................. 264 Приложение А. Установка PHP .......................... 265 Linux ............................................................................................ 265 Менеджеры пакетов ............................................................................ 265 Ubuntu 14.04 LTS ................................................................................. 266 CentOS 7 ............................................................................................. 268 MAMP ................................................................................................. 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
Стр.13

Облако ключевых слов *


* - вычисляется автоматически
Антиплагиат система на базе ИИ