| |
|
|
| | Оттягиваю этот момент на сколько можно дальше... но опять дошел до того, что нужно барсться за ООП.
Прочитал много статей про плюсы и мнусы ООП, и про то что когда начинающие программисты узнают о возможностях ООП, начинаю его применять везде, где надо и гед не надо, и в итоге получается "овощной суп", в котором трудно ориентироваться.....
Вот и я думаю, как бы не наворотить себе же проблем....
Долго читал про ООП, вот недавно написал первый класс, отправляющий почту в различных форматах, и с различными прицепками. Когда разобрался как он работает - так-то вроде удоная штука получилась. Тут сразу мысли в голову, где бы еще чего так же упростить, написать какой-нибудь такой же удобный класс. Но ранее прочитанные статьи "против ООП" - останавливают.
Вопрос:
У меня на сайте, пока что 4 типа пользователей. Данные пользователей берутся из базы данных из нескольких таблиц. Стоит ли применить ООП для управления пользователями? | |
| |
|
|
| |
|
|
| |
для: tAleks
(26.02.2007 в 14:51)
| | | Начни. Не задумывайся стоит или нет, понимание всего не придет если ничего не делать и читать ответы в форуме да всякие статьи "против ООП" | |
| |
|
|
| |
|
|
| |
для: isset
(26.02.2007 в 15:07)
| | | Из всего ранее прочитанного, я понял (а моежт и не правильно понял), что есть грань, до которой не стоит применять ООП, чтобы не наделать себе пролем, и после которой будет проще с ООП.
Так вот, в моем случае с пользователями, эта грань достигнута? Стоит ООП внедрять? | |
| |
|
|
| |
|
|
| |
для: tAleks
(26.02.2007 в 15:19)
| | | > Так вот, в моем случае с пользователями, эта грань достигнута? Стоит ООП внедрять?
Это зависит от того, насколько интенсивно используются данные пользователей
Если "данные" - это только логин-пароль-статус и все, то нет.
А вообще ООП знать надо - в том же PEAR оно активно используется.
ЗЫ:
Вот тема в поддержку ООП http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=32921&page=6 | |
| |
|
|
| |
|
|
| |
для: tAleks
(26.02.2007 в 14:51)
| | | Еще один случай.
У меня на сайте много страниц, где данные берится из БД и выводятся в виде таблички.
На таких страницах нужно реализовать возможность сортировки данных, по полю + постраничную навигацию.
Хочу написать класс, который бы делал заголовки таблицы (ссылки) по которым разрешено сортировать данные. И чтобы он генерил строку постраничной навигации.
И этим классом в дальнейшем пользоваться на всех страницах.
Стоит ли делать это ООП? Вроде ирархии тут нет, но мне кажется (в меру моей не достаточной образованности в области ООП) что класс будет удобен. Примерно как класс для отправки мыла с сайта.
Стоит или нет? Или через 8 дней я пойму, что за 8 дней я сделал себе кучу проблем этим классом? ;) | |
| |
|
|
| |
|
|
| |
для: tAleks
(26.02.2007 в 16:51)
| | | ты что хочешь, что то просто переделать или узнать ООП поближе? | |
| |
|
|
| |
|
|
| |
для: tAleks
(26.02.2007 в 16:51)
| | | Ну начнем с простого...
"Вроде ирархии тут нет" - как так нет???
класс подключения и выполнения запросов к БД
класс для получения данных с сортировкой (класс строит сам запросы)
класс для с функциями внесения изменений в таблицы
класс для работы с конкретной БД1
класс для работы с конкретной БД2
...
|
т.е. по сути - ОДИН раз написан класс, который включает в себя необходимый набот методов с обработкой ошибок и т.п. от которого в перспективе для каждой конкретной БД наследуется потомок с доп методами и функционалом специфическим для этой БД.
далее... вот представь себе, что есть некоторый базовый класс, который несет в себе некоторый набор методов - от него наследуются многие другие классы и тут нужно чуууууууть-чуть изменить логику работы данного метода для ОПРЕДЕЛЕННОГО класса - действия минимальны, просто переопределяется метод в нужном классе, однако другие классы не пострадают + не придется придумывать какие-то наименования глобальных функций...
в конце-концов, в базовом классе метод может выполнять какие-то подготовительные действия а дочерний класс к УКАЗАННЫМ выше действиям выполняет свои... без наследования придется или организовывать доп. функцию подготовки или писать весь функционал для каждого случая свой... с классами можно в любой момент обратиться к РОДИТЕЛЬСКОМУ методу конструкцией parent::Метод(параметры).
Может я и не вижу больших минусов, но у меня выстроена довольно неплохая (на мой взгляд) иерархия классов, которая насчитывает около полусотни классов, и около 20-25 классов от которых я наследую новые классы, используемые на разных сайтах.
в качестве примера работы сайта на классах могу привести ссылку на текущую работу (мой только раздел, сам сайт построен не мной, а внедрить класс в существующий код было делом одной минуты - раздел в процессе разработки) http://www.steelhearts.ru/fclib/underground/ - там используется порядка 15 классов, из которых с 10 классов УЖЕ ранее написаны и не требуется их переделывать совсем - я ДОПИСЫВАЮ функционал к наследникам, а не переписываю родителей. | |
| |
|
|
| |
|
|
| |
для: ZuArt
(27.02.2007 в 09:34)
| | | Я связался и не жалею. Это помогло мне освоить и другие языки и технологии, которые построены на применении ООП. | |
| |
|
|
| |
|
|
| |
для: ZuArt
(27.02.2007 в 09:34)
| | | Можно это по подробнее объяснить:
класс подключения и выполнения запросов к БД
класс для получения данных с сортировкой (класс строит сам запросы)
класс для с функциями внесения изменений в таблицы
класс для работы с конкретной БД1
класс для работы с конкретной БД2
...
|
Не знаю с чего начать.
В частности интересует проектирование сайта (классов), перед началом написания.
Как я понял, из вышеуказанного. В итоге, классы наследуются, наследуются и получается один класс. Потом создаем один объект, который содержит в себе все свойства и методы вышеуказанных родителей, и только с ним работаем в скрипте. Так? Или я че-то не догоняю? | |
| |
|
|
| |
|
|
| |
для: tAleks
(27.02.2007 в 14:48)
| | | наоборот...
из одного класса наследуются другие - преродитель всей иерархии так и называется - корень...
а все остальные классы - ветки..
а для начала изучения ООП на пхп лучше обратитесь к документации по ООП в принципе - с этого надо начинать, а не с "покажите, я хочу кодить"... без обид, но начинать надо с теории, которую тут объяснять слишком неудобно - есть много ресурсов и книг по этой теме =) | |
| |
|
|