В начале лета 2021 года на свет вышла книга "Pro PHP 8 MVC: Model View Controller Architecture-Driven Application Development" от Кристофера Питта. Это второе издание его книги о том, как работать с паттерном MVC в рамках PHP.
В этом обзоре я кратко пройдусь по содержании книги и выскажу свое мнение об плюсах и минусах книги, а так же оставлю рекомендации для кого подойдет эта книга.
Об авторе и техническом ревьювере
Хотя я до этого не сталкивался с работами Кристофера Питта (Christopher Pitt) в рамках его деятельности для PHP-комьюнити, тем не менее, проведя ресерч, я обнаружил, что он в свое время писал достаточно интересные статьи про PHP, некоторые из которых попадали на Хабр в виде переводов и заслуживали достойного внимания. Будем считать, что парень ровный.
Куда больше в этой книге меня заинтересовал технический ревьювер - Маттиас Нобак (Matthias Noback) - личность абсолютно легендарная в рамках современного php-комьюнити. Если вы работаете в корпоративном сегменте и пишите сложные системы на PHP, то с большой вероятностью вы делаете это на Symfony, а значит вы точно читали или хотя бы слышали об его книге "Один год с Symfony". А его статьи на его персональном сайте хоть и говорят об идеальном мире с идеальным PHP, который никогда не настанет, но все равно весьма поучительны.
Кратко о сути книги
Я бы шуточно назвал эту книгу так: "Как заплатить 39 долларов за то, чтобы Кристофер Питт написал плохой MVC фреймворк и выдумывал синтетические ситуации, где использовать нововведения из PHP 8.0"
Обзор содержания книги
В этой книге очень кратко описывается MVC-паттерн и приводится пошаговая реализация полноценного веб-фреймворка на PHP 8.0.
Мы полностью с нуля строим основные компоненты фреймворка, собираем из них готовый веб-фреймворк и пушим его гитхаб:
Router;
Обработчик форм;
Валидатор Форм;
Теймплейт Engine (4 варианта реализации на php);
Обвязка для PDO для работы с разными базами;
ORM;
DI;
Обвязка для тестирования;
Сборщик конфигов;
Управление кешем, сессиями;
Работа по отправке email;
Система логирования;
Из интересного, автор также приводит сравнение своей реализации с реализациями в популярных решениях, в основном из Laravel и Symfony.
Это книга исключительно про то: как сделать веб-фреймворк по паттерну MVC, а не про то, почему нужно делать так или иначе, практически нет теории, которая бы описывала причины тех или иных решений.
Плюсы книги:
Идет объяснение новых фич из php 8.0
Идет хороший обзор туллинга для работы с PHP
Код пишется исключительно в строгой типизации
Читателя подводят к идее, что лучше для начала освоить популярное решение, а не городить свое
Минусы книги:
Хотя книга позиционируется для новичков, код местами написан сложно и непонятно (прямо шестеренки скрипят при его чтении)
Код написан странновато (большой уровень вложений, странное именование переменных и так далее)
Не самое удачное использование фич из PHP 8.0
Никакой теории, никаких объяснений зачем делать так или иначе
Итоговое мнение
Такой формат книг достаточно популярен, когда берется какая-то концепция (в частности MVC) и дальше идет пошаговая реализаций этой концепции. В частности я читал подобные книги про MVC на примере Python и Java. И по моему мнению, данная книга является не самым лучшим представителем этого формата.
Главным минусом для меня является полное отсутствие теории того, что же такое MVC, почему современные веб-фреймворки пришли к такому паттерну, в чем заключаются главные плюсы такого паттерна и так далее. В данной книге просто вначале идет оговорка, что MVC - это круто, а дальше сразу к реализации. У нас тут как-то не приятно верить на слово.
Вторым главным минусом для меня является странное позиционирование данной книге. Если человек уже прочитал несколько книг по PHP и поработал с каким-либо веб-фреймворком, то он уже достаточно хорошо понимает концепцию MVC и то, как это работает на примере других фреймворков - для него эта книга ничего нового не скажет. А для новичков она слишком тяжела и утомительна в плане кода и отсутствия объяснений.
Я бы рекомендовал прочитать что-то типа "PHP в подлиннике", а дальше уже перейти к документации какого-то популярного веб-фреймворка на PHP вместо этой книги. Во многих книгах по знакомству с PHP идет пару глав по построению веб-фреймворка, которых будет достаточно для первичного ознакомления.
Плюсы в этой книге есть без всякого сомнения, но стоят ли они своих денег - это вопрос.
Интересное замечание
Все больше книг по PHP говорят исключительно про Symfony и Laravel. Уже очевидно, что рынок кастомной разработки на PHP сужается и такие фреймворки как zend и yii теряют внимание php-комьюнити.
Комментарии (2)
mnvcomp
10.10.2021 14:31Насчёт MVC на PHP мне понравилась книга «Шаблоны, объекты и методики программирования».
firnind
В защиту Yii. Yii 2 действительно теряет внимание, так как скоро выйдет Yii 3. Это обуславливает то, почему сейчас никто не выпускает книг по второй версии. В России Yii по прежнему актуален, так как есть большое комьюнити, разработчики, часть core team — русскоговорящие и т. п.