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

Имею опыт программирования в процедурном стиле, но стала возникать потребность в изучении ООП. В теории вроде всё понятно. Есть абстрактный класс животное имеющий свойства, методы общие для всех, а потом наследуешь для объектов этот класс и реализовываешь его отдельно с нужным функционалом. Но как это отнести к сайтостроению я не понимаю. Что из всего абстрактный класс, подразумевающий общие свойства и методы, а что будет частным случаем. В общем посоветуйте книги, которые помогут разобраться и поставить мозги на место
  • Вопрос задан
  • 3798 просмотров
Пригласить эксперта
Ответы на вопрос 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 например можно попробовать магенто или симфони
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 10:42
150000 руб./за проект
25 апр. 2024, в 10:41
2000 руб./за проект
25 апр. 2024, в 10:25
2000 руб./за проект