Что прочитать по ООП и паттернам для веб-разработки на PHP?

Изначально заголовок вопроса был: посоветуйте книгу. Но тостер просит задавать именно вопрос...

Пишу для веба на php уже почти 15 лет, но все это время придерживался функционального стиля, ибо работал один и не видел для себя пользы от перехода к ооп. А тут пришлось пойти на работу в офис. Мозгов и опыта хватает на выполнение текущих задач, но... сильно плаваю в теории, долго вникаю в код, туплю на всех этих постоянных наследованиях, интерфейсах, методах по одной строке и прочем. Никак не могу ощутить выгоду от ооп кроме очевидной - декомпозиции кода для удобства совместной работы через гит.

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

P.S. Начал читать Рефакторинг Фаулера и еще сильнее ощутил недостаток теоретических знаний.
  • Вопрос задан
  • 5003 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Design Patterns PHP (и на русском!)
2. Что нового в PHP 7.2 (кратко) - здесь

После того, как разберётесь с паттернами, советую смотреть на реализацию:
1. https://nette.org (самый удобный и простой, с понятной структурой кода)
2. https://fatfreeframework.com (микро-фреймворк, почти аналог nette)
3. https://phalconphp.com (один из лидеров по производительности, C-extension)
4. https://www.iceframework.org (один из лидеров по производительности, C-extension)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
@gerashenko
Тут сначала надо разобраться, что вам нужно, паттерны понять или суть ооп в целом.

В пхп ооп на практике в большинстве случаев используется через одно место, в большинстве случаев все скатывается к файлам с кучей функий или методов, короче процедурщина. Как я понял вам близок такой стиль, но на большом проекте этот код поддерживать, масштабировать и вообще что-либо с ним делать сущий ад, это неструктурированная каша. Пхп позволяет писать эту кашу, и потому его так любят вначале, а потом ненавидят в конце. Ооп лучше рассматривать отдельно, а потом смотреть как оно используется в пхп в чистов виде типа Symfony и адаптированном под реалии php типа Laravel. Комбинация функционального и ооп подхода в пхп - это идеальный баланс, но чтобы его держать, нужно видеть плюсы и минусы обоих подходов.

Laravel хороший фреймворк, но пользоваться им не умеют, он не заставляет писать правильно, в итоге получается очередная каша, та же процедурщина, но теперь размазанная по моделям контроллерам и папкам без какого либо намека на хорошую структуру.

Symfony жесток к новичкам, ломает мозг и не дает приспособиться и писать как раньше, но теперь называть это ооп.

В вашем случае вам нужно просто начать с азов того, что такое ооп. На примерах типа транспортное средство это абстрактный класс, а автомобиль и самолет потомки, а интерфейс двигаться по разному в них реализуется, но надо помнить что эта детская на первый взгляд чушь отлично работает в программных сущностях, в частности для веба например вы пишете парсер торговой площадки, у вас есть абстрактный класс торговой площадки и конкретные реализации (amazon, ebay), который хранят какие-то атрибуты, а еще вы хотите, чтобы эти объекты можно было сохранять в хранилище, но хранилище сами не хотите писать, а берете готовое, у него есть метод storable, и вы реализуете этот метод в этих площадках, и вот у вас уже площадки могут сохраняться. Короче как вы видите я не особо старался сделать хороший ответ, но суть ооп в том, что код становится похожим на детальки конструктора, которые начинают состыковываться друг с другом. Никакого выигрыша в производительности, только структура, универсальность, масштабируемость.

Извиняюсь за ошибки, с телефона неудобно писать.
Ответ написан
Комментировать
GTRxShock
@GTRxShock
Full-stack developer (Symfony, Angular)
Комментировать
e20860
@e20860
Работал с СУБД, осваиваю WEB
Сам сейчас пытаюсь перейти на веб-разработку после Visual FoxPro. Корплю над учебниками. На мой скромный взгляд:
1. книга Мэтта Зандстры "PHP Объекты, шаблоны и методики программирования". Вполне конкретная и доходчивая книжка.
2. Курс по созданию собственного фреймворка. 29 занятий с нуля. https://www.youtube.com/watch?v=nGHfiWjIDr8&list=P...
Мне помогают очень. Только книгу надо читать с опережением относительно курса...
Ответ написан
Комментировать
@adrontek
Ответ написан
Комментировать
Именно с примерами на php - это книга Мэтта Зандстры. Неплохая, написано понятным языком. Примеры паттернов на php, что ускоряет понимание.
Классика - банда четырёх. Примеры на java, с пониманием проблем не должно возникнуть.
Вообще про ООП и архитектуру посоветую 2 всем известные книги - Мартин "Чистый код" и Макконнелл "Совершенный код".
3 последних книги - стандарт индустрии, общепризнанные работы, написаны понятным м доходчивым языком, есть в русском переводе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы