Какую книгу взять для полнейшего понимания ооп в php?

Имею опыт программирования в процедурном стиле, но стала возникать потребность в изучении ООП. В теории вроде всё понятно. Есть абстрактный класс животное имеющий свойства, методы общие для всех, а потом наследуешь для объектов этот класс и реализовываешь его отдельно с нужным функционалом. Но как это отнести к сайтостроению я не понимаю. Что из всего абстрактный класс, подразумевающий общие свойства и методы, а что будет частным случаем. В общем посоветуйте книги, которые помогут разобраться и поставить мозги на место
  • Вопрос задан
  • 3801 просмотр
Пригласить эксперта
Ответы на вопрос 9
adamsafr
@adamsafr
Ответ написан
artem90
@artem90
TeamLead, Developer
Из книг посоветую начать с этих:
Ответ написан
Комментировать
aprenoir
@aprenoir
программный архитектор
crmMaster
@crmMaster
Принципы проектирования ООП слабо зависят от языка, поэтому советую все-таки прочитать книгу "Приемы объектно-ориентированного проектирования. Паттерны проектирования"
www.ozon.ru/context/detail/id/2457392

Размером небольшая, читается хорошо.
Ответ написан
Комментировать
xtala
@xtala
Постигает Дзен
Для полного понимания ООП стоит начинать изучать с более строгого ЯП. Например С++. В книге "Как программировать на С++" Х.М.Дейтел ООП разжевано чуть более чем полностью.
Ответ написан
MisterN
@MisterN
Чувак, а ты может разводишь народ на 1-е то апреля?
Сайты сам программировал хоть немного? Я имею ввиду не "сделал" мышкой, а чтобы там че-нибудь своеное добавить, не чужим трудом пользоваться? Не имею ничего против программирования мышкой в принципе, просто понимания php вообще и ооп в частности такое знакомство естественно не добавит.
Забиваем в поиск drupal api и получаем первый пример $storage = \Drupal::entityManager()->getStorage('your_entity_type');
Но запрос на самом деле не показательный, т.к. путаются всякие советы по созданию формочки, скачиванию друпала с оф.сайта + установка и т.п. Приходится сделать пару кликов на сайте по ссылкам. Короче уточняем что-ли так, например drupal api orm тут подмешивается конечно "7 причин для перехода с Drupal на Yii" но в целом уже ближе к теме и есть вот такие статьи https://drupalfly.ru/lesson/create-form-in-drupal-8 а теперь подумаем над вопросом, к чему же нам наследовать FormBase, не лучше ли просто скопипостить в каждой форме код из FormBase? Найдем этот класс например в друпале и полюбуемся, кстати. В чем поможет ide или запрос в яндексе что-ли drupal github class FormBase. Но мне он не поможет, я уже вбиваю joomla api orm и получаю что-то не очевидное
https://api.joomla.org/cms-3/classes/JForm.html
Это класс JForm. Ну, забиваем в поиск JForm::addFieldPath, находим урок по созданию компонента, не смотрим подробности, там тоже ооп. Берем любой класс и рассуждаем, как про друпал "а че бы нам это и не скопипостить все, зачем нам класс, пусть будет куча переменных в глобальной области видимости и все такое".
inet-reklama.com/blog/joomla/uroki-po-sozdaniyu-ko...
На самом деле, большая какая-то статья, я не осилил, даж листать не стал, но удивлюсь, если там нет ооп. Я вообще не делал сайты ни на джумле, ни на друпале, но почему-то говорю с уверенностью. И попробуйте меня опровергнуть.
А вот что я знаю, так этом modx https://ershov.pw/blog/modx-revolution/api
Ну, про фреймворки я вообще молчу, там начинаться будет с создания классов mvc. А если вы спрашиваете "ну почему же они не делают все функционально, нахрена везде ооп?", то попользуйтесь немного ооп, а потом попробуйте вернуться к функциям. Вам не понравится. "есть абстрактный класс животное имеющий свойства, методы общие для всех" - ну, так-то этого достаточно, есть еще паттерны, их стоит освоить. Потом, когда по-привыкните к ооп.
В js, кстати, наследование прототипное и объекты не совсем объекты т.е. не совсем то. Ну, там стандартом стало использование паттерна модуль, что говорит о том, что в не приспособленном в принципе к ооп языке люди находят выход, чтобы юзать оопэобразные практики. Эт не мазохизм.
Ответ написан
Комментировать
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
ООП в любой среде, не только PHP, позволяет смоделировать процессы. Чтобы что-либо моделировать, нужно владеть предметной областью, т.е. иметь немалый опыт за плечами по решению конкретной проблематики каким-либо способом, в данном случае оптимально на голом PHP.

Опять же, умные люди давно собрали все мыслимые и немыслимые грабли и сформулировали их в виде паттернов, антипаттернов и пр.

Вообще чтобы начать годно программировать на ООП, лучше всего затесаться в команду, где его практикуют, например джуном или вообще стажером, и прям терпеть, колоться, рыдать, но продолжать есть кактус до полного переформатирования мозгов. И да, назад пути уже не будет...
Ответ написан
Комментировать
@Skit25
на всё воля Бога
Сколько можно одинаковых вопросов? Тостер это или помойка?
Ответ написан
Комментировать
@ipokos
Если как вы говориье, в общих чертах понимание теории есть, попробуйте взять любой ооп движок, и на нем смотреть как что работает. На php например можно попробовать магенто или симфони
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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