Изучаю PHP. Хотелось бы посмотреть, как писать правильно, с использованием ООП, без него.
До этого изучал C#, концепцию ООП понимаю, но к web-у мне тяжело применить её.
Ведь на десктопах идет постоянная работа с объектами. В web тебе пришел запрос, ты подгрузил, что нужно из базы данных, отдал это и всё, все созданные объекты разваливаются. В теории понимаю, что ООП нужен для удобства разработки и отладки, но на практике я это применить не могу.
Может быть есть хорошая книга по ООП в PHP с !примерами! ?
Или же готовый опенсорсный проект на PHP для изучения?
Запрос - это объект. Ответ - объект. Есть сервис обрабатывающий запросы - он тоже есть объект. Его можно декорировать (это называется http middleware).
Есть объекты предметной области (Product, Category, Tag), которые нужно хранить в базе (еще куча компонентов, все в виде классов).
Мне вот как-то уже сложно представить работу с WEB без ООП.
Ок, возможно я не правильно выразился. Я могу написать код с использованием ООП, но я не уверен насколько я делаю это правильно.
Поэтому мне нужен либо грамотно написанный код, чтобы я ковырялся. Либо хорошая книга. Читал PHP5 для профессионалов, очень помогло. Остальные книги которые я находил - описание азов PHP.
@Miraage, о да, это такой показатель... Начнем с того что vk это не типичный проект, таких проектов по масштабу не так уж и много. И закончим тем, что как и в любой другой продуктовой компании, заглядывать в код "продукта" обычно страшно, по прошествии хотя бы лет 5-ти. Когда это все начиналось, помниться PHP5 еще либо небыло либо он только вышел, и из него была взято только что-то из SPL, и то чуть позже. А когда в PHP появилась полноценная ООП модель, то что-то переписывать конечно уже было поздно.
С другой стороны, гитхаб написан на рельсах, все на объектах и все живут счастливо. Твиттер так же (Ruby/Scala). Думаю что добрая половина фэйсбука так же написана в лучших традициях ООП.
Значит ты не понимаешь суть ООП. ООП ориентирован на данные. Процедурный подход на код. ООП позволяет мыслить абстрактно и понимать объект как некоторую сущность, совокупность взаимосвязанных данных и кода. Которые могут наследоваться, инкапсулировать в себе свойства и методы и выстраиваться в иерархическую структуру. Есть полиморфизм. Абстрагирование вот главная фишка. Проще думать объектами.
Ps. PHP это процедурный язык с поддержкой ООП. По парадигме по Мэйеру ООЯ удовлетворяет хотябы основным критериям: Все есть объект, нет глобальных переменных, любая функция метод объекта и др. Что ближе всех phyton c# java.
И попробуй попиши на C. И увидешь разницу.
А исходников в интернете полно. Скачай фремворк ларавел. Посмотри на кучи абстракций фасадов и др. И попробуй написать наподобе с процедурным подходом.