Веб Мастерская | Веб разработка и программирование | ИТ | IT
Без категории · 28 июля 2026 г.
PHP:
PHP: PHP 8+ как будто создан для MVC Коллеги, если вы до сих пишете MVC на PHP так, будто на дворе 2015-й, пора признать: PHP 8+ сам просится в нормальную архитектуру. Раньше как было? Контроллеры с горой boilerplate, док-блоки вместо типов, magic-строки вместо статусов, аннотации в комментариях и вечное: «а тут точно null не прилетит?» Теперь иначе. 1) Типы — это контракт, а не пожелание: int, string, ?Product, Response, array — уже не подсказки для IDE, а нормальные границы системы. MVC сразу становится предсказуемее. 2) Constructor property promotion: Меньше кода, больше смысла. Контроллеры, сервисы, репозитории становятся компактными и читаемыми. 3) readonly-свойства и DTO: Если объект создан, чтобы нести данные, — пусть не меняется. Идеально для Request, Response, Value Object и разных DTO. 4) Enum вместо magic-строк: Статусы заказа, роли пользователей, типы событий — больше никаких 'admin', 'paid', 'draft', раскиданных по проекту. 5) Атрибуты вместо аннотаций в комментариях: Маршруты, middleware, валидация — всё это теперь можно описывать прямо в коде, по-взрослому. 6) match вместо бесконечных switch: Коротко, строго и без неожиданных сюрпризов. И это уже по взрослому: — контроллер тонкий, — зависимости видны, — маршруты в атрибутах, — типы строгие, — null не прячется по углам. MVC в PHP 8+ читается как схема приложения: M — модели и DTO с типами, readonly и понятными контрактами. V — шаблоны, ресурсы, response-объекты. C — контроллеры-координаторы, а не свалка бизнес-логики. Главное — не превращать контроллер в «божий одуванчик на 900 строк». MVC — это не «всё в одном файле», а разделение ответственности. Если проект ещё на PHP 7.4, я бы начал миграцию не с «переписать всё», а с трёх шагов: Включить strict_types=1 в новых модулях. Перевести DTO и Value Objects на типизацию и readonly. Заменить magic-строки на enum там, где это уже возможно. PHP 8+ не заставляет любить MVC. Он просто делает нормальный MVC менее больным. А вы уже используете PHP 8+ в проде или пока «работает, не трогай»? Пишите, коллеги. Вот так. Идем кодить дальше! 🚀 #вебразработка, #webdev, #webdevelopment, #frontend, #backend, #fullstack, #созданиесайтов, #php, #js, #html, #css, #mysql, #seo, #сео, #ВебМастерская, #СтудияАбрамова, #АбрамовВеб