PHP7 в подлиннике

Александр Шитик
Александр Шитик

Пишу свои посты и книги, делаю обзоры на фильмы и книги. Эксперт в области космологии и астрономии, IT, продуктивности и планирования.

PHP7 в подлиннике
Дмитрий Котеров, Игорь Симдянов
Жанры: Программирование
Год издания: 2016
Год прочтения: 2020
Моя оценка: Наивысшая
Количество прочтений: 1
Количество страниц: 1071
Конспект (страниц): 0
Первоначальный язык издания: Русский
Переводы на другие языки: Переводы на другие языки не найдены

Обычно я в обзорах делаю мини-пересказ всех глав, но, пожалуй, не в этом случае. Здесь я ограничусь беглым изложением 10 частей, объединив все главы той или иной части в единое описание. После чего, в самом конце, напишу своё мнение о книге и постараюсь выделить её плюсы и минусы.

Основы веб-программирования

Вообще говоря, эта книга не только о PHP, но и о вебе, об интернете. В принципе, язык PHP практически невозможно представить без интернета — скажем, как прикладную десктопную программу, мобильное приложение или драйвер для ОС. Поэтому авторы книги начинают издалека. Например, здесь разбираются такие понятия, как TCP/IP, сервер, провайдер, хостинг, HTML-документ, порт и многое другое. Объясняется работа с методами GET и POST, идёт беглое знакомство с HTML (в основном с формами), CGI и встроенным веб-сервером PHP.

Основные языка PHP

Раздел состоит из 8 глав и полностью посвящён базовым концепциям языка. Тем, кто знакомится с языками программирования через книги, будет более чем понятно, о чём идёт речь: переменные, типы данных, операции, условные операторы, циклы и тому подобное. Из не совсем привычного здесь — пожалуй, обработка данных, присланных с форм, а также генераторы. Кстати, функции также разобраны именно здесь.

Стандартные функции PHP

PHP имеет огромное количество встроенных функций для работы с разными типами данных, покрывающих самые разнообразные случаи. Часть этих функций, к сожалению, к нашему времени даже разработчиками языка уже не рекомендуется к использованию. Тем не менее, кто не хочет лезть в официальную документацию (а я всё же считаю, что именно она является первоисточником и содержит полный перечень функций), тот может ознакомиться с перечнем, предложенным авторами книги. Тем более что здесь собраны наиболее популярные и часто используемые функции. Они разбиты по группам, где каждая группа — это отдельная глава, так что мне будет проще перечислить названия глав:

  • Строковые функции
  • Работа с массивами
  • Математические функции
  • Работа с файлами и каталогами
  • Права доступа и атрибуты файлов
  • Запуск внешних программ
  • Работа с датой и временем
  • Основы регулярных выражений

Основы объектно-ориентированного программирования

Несмотря на то, что объём текста около 100 страниц, здесь практически нет долгой и нудной теории ООП. Материал подразумевает, что вы уже немного знакомы с этой концепцией. Погружение в ООП в этой книге, как и во многих других, можно назвать плавным, но при этом уже с первых страниц встречается код на PHP. Затронутые темы ничем не отличаются от стандартных тем ООП: создание объектов, конструкторы, деструкторы. Кстати, при обсуждении деструкторов затронута тематика сборки мусора и циклических ссылок.

Далее идут модификаторы доступа (public, protected, private), ключевые слова this, self, сериализация объектов и магические методы. Не обошли авторы стороной и основные парадигмы объектно-ориентированного программирования, такие как наследование, полиморфизм, инкапсуляция. Затронуты темы интерфейсов, трейтов, абстрактных и виртуальных методов. Кстати, в RFC за последние годы было немало мелких улучшений и синтаксического сахара по ООП в PHP, но в текущей версии книги, разумеется, этого нет (возможно, в более свежих изданиях, если таковые есть, это дописано). В целом, эта часть проработана хорошо — разобраны тематики пространства имён, автозагрузчики классов. Последняя глава посвящена обработке ошибок.

Предопределенные классы в PHP

Если уж в PHP есть множество встроенных функций для работы с разными типами данных, то, разумеется, многие из них можно было бы объединить в классы для удобства работы. Возможно, если бы разработчики языка изначально так сделали — например, с функциями для работы со строками или массивами — это было бы ещё удобнее (в Laravel, например, есть подобные классы).

В нативном языке же в целые классы сгруппированы немного другие наборы функций. К ним можно отнести, например, работу с датой и временем, итерируемыми типами данных, рефлексией (работой с кодом), файлами и каталогами и др.

Работа с сетью в PHP

Здесь мы снова возвращаемся к началу книги и затрагиваем тематику работы с сетью, но уже средствами PHP. Рассматриваются установка и получение заголовков, работа с cookies и сессиями, работа с URL (фактически речь идёт о глобальных массивах PHP, а также некоторых стандартных функциях). Также в этой части книги показаны примеры работы с сокетами и почтой. Каждая из этих тем разобрана достаточно подробно (пожалуй, кроме сокетов).

Расширения PHP

Здесь речь идёт о расширениях, которые мы можем подключать и отключать в конфигурационном файле php.ini. Часть этих расширений встроена в ядро языка, часть же фактически является сторонней и требует дополнительных действий для установки и активации.

В этой части книги разобрано, как устанавливать такие расширения и как подключать их в разных операционных системах. Бегло разобраны некоторые директивы php.ini и показано, как, например, изменять размер допустимой памяти.

Одна из глав этого раздела уделена безопасности и фильтрации входных данных, которые необходимо принять и обработать — скажем, с пользовательских форм или URL-адреса. Примеры используют регулярные выражения, так что желательно иметь общее представление, что это такое.

Далее идут главы по работе с MySQL, изображениями, сетью и Memcached. По базам данных — небольшой вводный курс теории: от столбцов и строк до ключей и типов данных. Разобраны примеры работы с базой как через обычные SQL-запросы, так и через расширение PDO (собственно, неудивительно, что упоминание о PDO идёт именно в теме расширений — для этого и нужен был вводный курс по основам баз данных, на случай, если читатель с ними не знаком).

Что касается работы с изображениями — здесь рассмотрено расширение GD. Для работы с сетью использовалось расширение php-curl, а для Memcached — расширение php7-memcached.

Библиотеки

Несколько глав, в которых рассказывается о том, что такое Composer (а также как его установить и как с ним работать), что такое Packagist и где искать сторонние библиотеки. В конце разобрано, как самому создать библиотеку, которой могли бы пользоваться другие. Ну а чтобы будущий компонент соответствовал ряду общепринятых требований и стандартов, авторы знакомят читателя с PSR.

Приемы программирования на PHP

Одна из самых неоднозначных частей, состоящая из маленьких глав, которые призваны на реальных примерах показать, как можно работать с кодом. Среди таких примеров: работа с XML, с формами (которая уже неоднократно поднималась, только здесь — с загрузкой файлов), установка редиректов, работа с HTML и некоторые другие, не связанные между собой темы.

Развертывание

Под словом «развёртывание» не стоит понимать современные CI/CD-решения. Здесь скорее речь идёт об установке Git, подключении по SSH, а также установке некоторых прочих инструментов, необходимых для полноценной работы с PHP, если вы задумали написать что-то большее, чем просто скрипты. В частности — установка базы данных, веб-сервера и виртуальной машины.

Заключение

Плюсы

Очень подробная книга, которую не скучно читать и которая сопровождается огромным количеством примеров и вставок кода. По каждой тематике есть расширенное описание. Я бы сказал, что эту книгу можно смело ставить на второе место по информативности и полезности информации — после официальной документации. Как по мне, это самая подробная книга про PHP, которую мне доводилось видеть.

Минусы

Книга не просто большая — она огромная. Многие, возможно, так и не дойдут до финиша. К тому же, некоторые материалы уже устарели (впрочем, надеюсь, авторы следят за этим и выпускают обновлённые версии книги).

Вверх