ООП в примерах

1. Nu3oN (04.05.2010 / 08:24)
Вот наконец то добрался я до этого самого ООП (Так сказать частично) но ничего нового для себя не нашел, точнее не знаю даже где его можно применить! вроде все что я делаю, можно сделать и в обычной функции! если не сложно, напишите примеров кода, где показанна выгода ООП

2. Nu3oN (04.05.2010 / 08:26)
Во написал гг! короче я не знаю как применить свои новые знания! приведите пару примеров выгоды ООП

3. Azzido (04.05.2010 / 08:58)
http://habrahabr.ru/blogs/php/37576/
http://habrahabr.ru/blogs/php/37610/

4. Azzido (04.05.2010 / 09:00)
Эти примеры привел по такому же вопросу пользователь Fuelen не помню на каком форуме, вот здесь действительноо ооп нужен

5. Alex (04.05.2010 / 09:01)
"вроде все что я делаю, можно сделать и в обычной функции!"
Значит в использовании ооп и нет необходимости ;)

6. Nu3oN (04.05.2010 / 09:05)
Azzido (Сегодня / 08:58)
http://habrahabr.ru/blogs/php/37576/
http://habrahabr.ru/blogs/php/37610/
Я с телефона! (а телефон у меня додревний) можешь кинуть информацию на какой нибудь вап сайт? smile

7. Nu3oN (04.05.2010 / 09:05)
gmc (Сегодня / 09:01)
"вроде все что я делаю, можно сделать и в обычной функции!"
Значит в использовании ооп и нет необходимости ;)
Вот и я так думаю

8. Артур (04.05.2010 / 09:36)
4, на форуме Геморроя. Тогда Морган спрашивал smile
1, вот например мой класс смайлов http://phpcodes.ru/code56.html
Здесь в конструкторе считывается инфа с файла и сохраняется в свойство, кэш так сказать. В отличии от многих функций, которые я видел, где тот файлик открывается много раз, ибо в цикле, в методе replace идёт только замена, ибо есть кэш.
Лучше открыть 1 раз файл вне цикла, чем 15 раз в цикле smile
Но это далеко не все плюсы ООП

9. Олег (04.05.2010 / 11:57)
Раньше еще когда ООП не было и все затаили дух в ожидании PHP5 многие аналитики говорили что ООП, в частности к веб будет не востребован. Но с поялвением ООП стали придумывать различные фреймворки. Они позволяли решать такие задачи, где приходилось повторно использовать один и тот код в одном проекте. Например, чаще всего это обработка html-форм, работы с БД, с учуд-файлами, итд.
ООП значительно облегчает написание программ, особенно в работе с командой - очень удобно.

10. ктулху (04.05.2010 / 12:17)
А я чёт вообще не вижу смысла в ООП... функционал не расширяет, всё что можно сделать на ООП, можно реализовать на функциях

11. ramzes (04.05.2010 / 12:28)
Ооп удобнее, надо просто поюзать, возможности шире

12. Shur1k (04.05.2010 / 12:31)
Что такое ООП ?

13. Azzido (04.05.2010 / 12:38)
12, http://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование

14. Nu3oN (04.05.2010 / 14:26)
ShiftBHT (Сегодня / 12:17)
А я чёт вообще не вижу смысла в ООП... функционал не расширяет, всё что можно сделать на ООП, можно реализовать на функциях
На данный момент, у меня такое же мнение!

15. ramzes (04.05.2010 / 14:59)
8, у меня почти такой же класс))

16. Олег (04.05.2010 / 15:45)
Ну если вы в одиночку пишите и небольшие проекты, то да....ООП нет смысла использовать.

17. Удаленный (06.05.2010 / 14:26)
1. жизненные примеры глянь в сети,а вообще не советую проходить мимо ООП,во 1 повышается реюзабильность самого кода,во 2 - конечно, по большому счету, можно обойтись в ряде случаев и без применения ООП, но все же лучше грамотно написать класс и применяй его во всех проектах и наследуй наздоровье.

18. ramzes (06.05.2010 / 17:26)
Че то помоему кто то замарочилсяsmile
зачем делись на православное и неправославное?
Всегда использую то что больше подходит в каждом конкретном случае, как и скол/файлы, и т.д.
Ограниченность - плохой подход.

19. WCO (07.05.2010 / 17:25)
6,
http://m.habrahabr.ru/post/37576/
http://m.habrahabr.ru/post/37610/

20. Артур (07.05.2010 / 17:27)
^ 404

21. WCO (07.05.2010 / 18:32)
20, поправил))

22. ramzes (07.05.2010 / 18:37)
19, комменты там как всегда Пипец)) нормальная статейка

23. Стасон (21.05.2010 / 11:46)
Дайте пару скриптов ООП smile по учебникам и статьям не привык учится

24. Артур (21.05.2010 / 15:03)
24, выбирай любой фреймворк. (http://yiiframework.ru
http://framework.zend.com
http://www.xisc.com
http://www.kohanaphp.com )

25. Maksim (24.05.2010 / 20:24)
По поводу поста №8 хотел сказать, тоже можно реализовать и без ООП. Считать файл один раз в масив, а там уже сравнивать и делать замену(можно построить простую функцию). А если человек делает считывание файла в цикле много раз то это уже не знание ООП а кривые руки. В пхп если для каждого класса создать файл и грузить его в код требует много ресурсов. В любой книге написано примерно следующее "проекты, перегруженные средствами объектно-ориентированного програмирования, при выполнении будут требовать больше ресурсов сервера, чем при использовании традиционного пхп кода." А если хотите понять приумущества ООП переходите на ява.

26. ramzes (24.05.2010 / 22:33)
26, где в #8 написанно хоть что то из того что вы якобы в нем увидели?
Дан пример кода, и описан стандартный случай ошибки (чтение одного и того же файла в цикле),
ни о том что это потому что ооп не знают, ни о том что без ооп нельзя реализовать это по человечески, я там что то не нашелsmile сказано лишь про небольшие удобства и всеsmile

27. Maksim (24.05.2010 / 22:46)
с автором поста 8 полностью согласен, просто он в "плюс" ООП ставит то что можно поставить нормально написанной простой функции...

28. Жан-Глюк Петард (25.05.2010 / 00:55)
Ы. А зачем процедурный подход если есть ООП? Зачем реализовывать процедурно то, что можно реализовать объектно? smile Это тоже самое, что говорите вы. Пока вы не поймете, что такое паттерны и на сколько с их помощью легко писать, вы вообще не сможете обсуждать ООП, потому что вы не знаете, что это такое Гг.
"В любой книге написано..." - выбросите это УГ ну или положите рядом с унитазом и используйте бумагу по назначению D
Java - другой уровень, здесь нет людей которые близко приближались к нему. Проекты аля сайт для загрузок на j2ee не пишут.
Кто-то тут юзал фреймворки? Ы Возникло ощущение, что нет.
З.Ы. http://h-type.com/filez/lj/articles/di/#using_phemto - попробуйте сделать dependency injection на функциях Гг.

29. ramzes (25.05.2010 / 01:34)
29, встречный вопрос, а зачем реализовывать ооп, если можно процедурно?
Цель должна оправдывать средства, в первую очередь, по моему.
Во вторую, любой человек делает лучше тем методом которым лучше владеет, а не тем который кто то назвал лучшимsmile
и в третьих, 'юзал фремворк' это что типа достижение такое?))
// клоунада 'щас я вас научу жизни'

30. Жан-Глюк Петард (25.05.2010 / 01:50)
Учить? Зочем учить таких кульных мастеров? )
1. Вообще то встречным вопрос был мой. А свой вы уже задавали Ы.
2. Любой человек делает тем, до какого уровня он доразвивался, если вы остановились на процедурке и не хотите развиваться дальше, мне вас жаль. ТС кстати развиваться хочет, но с вашими "зачем нужно, есть процедурка" он останется в песочнице.
3. Фреймворки не достижение для вас, это так сказать новый уровень D
4. Клоунада не клоунада, но песочнице вашей нужно еще много учиться, дабы познать дао :hack:. Но если вы не пишете что-то больше гостевой в месяц, то да... можно дальше не развиваться. Я бы очень хотел посмотреть (посмеяться?) на студию которая разрабатывает сайты используя процедурный подход Гг.
ТС, отправляйся читать про паттерны smile Тогда ты поймешь для чего нужно ООП и придет понимание того, что с ним делать и как.

31. ramzes (25.05.2010 / 03:41)
Ыы, просто ржу. Пардон, о великий гуру, в нашей песочнице уже как то переросли стадию 'я первый спросил'))
По остальным пунктам все то же самое ха-ха. Уж извините мне мое непочтительное отношение о великий гг.
письками меряться как то стар уже.
Единственное, прям зауважал, как это вы за пять минут да еще и не лично определили, что, сколько, и за какой срок мы пишем?
Гг не говоря уже о наших стремлениях развиваться или же нет))

32. Azzido (25.05.2010 / 07:58)
31, wap сайту небольшой посещаемости процедурных методов вполне достаточно

33. Дмитрий (25.05.2010 / 08:16)
31 реально клоунада, пришёл умник и стал всех учить)) если на то и пошло, то лучше чередовать два метода, и смотреть где что лучше)
зы: складывается мнение что ты услышал пару умных слов, и зациклился на них

34. Дмитрий (25.05.2010 / 08:20)
и ещё, как может быть такое "на процедурках этого не сделать, а на ооп легко", может я что-то не понимаю, но ведь классы состоят из тех же самых функции) так как тогда это возможно?

35. Богдан (25.05.2010 / 08:52)
35.мне лично еще не встречалось того что нельзя сделать на процедурках.но было много случаев когда ООП намного удобней обычных, много подключаемых функций.Например ксласс БД:
в многих скриптах видел,и сам раньше так писал: сам файл подключения к БД вместе с конфигом инклудится в каждом файле.На ооп зделали 1 класс,Зделали конструктором само подключение к БД и написали основные функции(insert,update,save(инсерт + апдейт ON DUPLICATE KEY,и разные там для получения данных с БД)),после обработки данные посылаются в клас result где мы обрабатываем ошибки и выбираем каким образом получить инфу.И намного удобней етим всем управлять с одного файла,как ето выглядело б на обычных функциях я даже и не представляю....
и во всем проекте мы используем методы класа БД.допустим у нас поменялась БД,или еще какие то изменение-мы отредактируем один файл и все по прежнему будет работать.
ООП делает проект боле гибким и удобней потом те же класы использовать в других проектах.

36. Дмитрий (25.05.2010 / 08:56)
но ведь можно было написать и функцию такуюsmile

37. Богдан (25.05.2010 / 09:09)
37.хз...я лично б не стал щас так извращатся....для больших проектов ооп всетаки удобней использовать.а там уже вам решать как писать)
но факт есть факт...когда ты приходиш устраиватся на роботу (в области веб програмирования) одним из первых вопросов будет насколько ты знаком с ООП.кто хочет етим заниматся професионально то щас без ООП никак....

38. Дмитрий (25.05.2010 / 12:11)
я с тобой согласен, но я как бы не про это, просто оратор выше как восхвалил ооп, а процедурный метод стал обсирать, вот с этим я не согласенsmile как не крути, а без него никудаsmile надо использовать то. что лучше подходит (ну или как тебе удобнее, я бы сказал что это самое главное)

39. Жан-Глюк Петард (25.05.2010 / 13:20)
ПьяНый Ангел (Сегодня / 08:20)
и ещё, как может быть такое "на процедурках этого не сделать, а на ооп легко", может я что-то не понимаю, но ведь классы состоят из тех же самых функции) так как тогда это возможно?
Легко возможно, ты пробовал писать не просто классы и функции? Наследование, полиморфизм, несколько типов агрегации и как я уже говорил паттерны. Вы ничего не поймете в ООП, пока не увидите практических, но в тоже время абстрактных способов применения этих средств.
Посмотри на MVC (да он реализуется на функциях, но это когда минимум значений для view), ActiveRecords (и вообще на ORM системы), DI я уже упоминал smile , абстрактные фабрики, фабрики методов, билдеры, композиции, observer, стратегии и куча других.
phppatterns.com - тут есть немного, зайдите на сайт Мартина Фаулера, там есть еще много более современных паттернов, откройте банду четырех и прочитайте про классические паттерны. Объяснить человеку для чего это невозможно пока он сам не увидит.
ramzes, заканчивай закидываться, а то смех без причины ни к чему не приведет D

40. Жан-Глюк Петард (25.05.2010 / 13:30)
ПьяНый Ангел (Сегодня / 08:16)
31 реально клоунада, пришёл умник и стал всех учить)) если на то и пошло, то лучше чередовать два метода, и смотреть где что лучше)
зы: складывается мнение что ты услышал пару умных слов, и зациклился на них
клоунада парни это у вас здесь: пришел парень, спросить про ООП, но похоже не туда пришел, потому что вместо ответа по теме вы начали холивар.
Когда начинаешь писать быстро (а это фреймворки и никаких процедурок), ничего чередовать уже не приходиться. Функций в обычном виде не остается даже в скриптах которые юзаются для низкого уровня работы с системой (висят на кроне, кэшат xml с других ресурсов и т.д.) это просто не удобно.
Но я соглашусь с 33 постом... если ваш ресурс аля тегос (один груз и все) и посещалка минимальна, когда не нужно быстро внедрять новые няшки, то можно обойтись примитивными и простыми способами.

41. Жан-Глюк Петард (25.05.2010 / 13:48)
Перерыл всю коллекцию ссылок и еле нашел: http://sourcemaking.com/ - читайте и посвящайтесь (предварительно изучив английский, правда там и без него все понятно).
Начните с Singletone и Registry smile

42. ramzes (25.05.2010 / 14:26)
40, кто сказал что без причины? Я смеюсь не над вами как вы видимо подумали, а над вашими постами, от которых так и несет 'я знаю а вы все лохи, и писька моя больше - я фремворки юзаю'.
// холливар как раз начали вы, да плюс не лучшим образом отозвались о нашей песочнице гг см. #31, потому и такие посты в ответ, как говорится за что боролись. (манера ваших постов, а не утверждения, смешны).
//ни че личногоsmile , свалил из темы дабы веник не далиsmile

43. Жан-Глюк Петард (25.05.2010 / 15:17)
Тролль или не тролль определяется лишь тем, кто и в каком окружении оказался, если здесь все не согласны со мной, это не значит, что я тролль smile Особенно учитывая, что мои посты по теме (почти D ). А скажем товарища ramzes`a полный оффтоп который должен пресекаться.
Я сказал в чем проблема не понимания, это отсутствие желания дальше развиваться, прочтенная статья о реализации ооп в похапе не дает абсолютно никаких знаний о ооп, потому что это только средства, а ооп это несколько выше по иерархии абстракционного представления в программном коде. От того, что вы создали класс с функциями вы не стали юзать ООП, вы всего лишь создали либу с функциями с одним пространством имени и общими данными.
А фреймворки я упомянул к тому, что они как раз представляют наиболее удачные примеры. Потому как в них собрано огромное количество шаблонов и все взаимосвязано, лучше примера просто не найти, где было бы сразу все.

44. Lugaro (25.05.2010 / 15:48)
Да успокойтесь вы

45. Жан-Глюк Петард (25.05.2010 / 15:51)
А почему бы не потроллить ЩАП мастеров D

46. Стасон (30.05.2010 / 14:02)
Разочаровался я в ооп, тока зря время убил, процедурку ни что не заменет smile

47. Maksim (30.05.2010 / 20:57)
Поучи на досуге java-тогда скажешь ответ...

48. Мakcим (05.06.2010 / 15:19)
Уx! Дeтckий caд paзвeли! Kak чeлoвek, учивший c++ и java, ckaжу - OOП kpутo. Инkaпcуляция, пoлимopфизм, нacлeдoвaниe. Пpaвдa php c kлaccaми нe иcпoльзoвaл, pуkи нe дoxoдят kak-тo. Нaдo пoзыpить xoть oтличиe kлaccoв php oт java

49. Мakcим (05.06.2010 / 15:24)
Coглaceн c пocтoм 36. Kлacc бaзы мнoгoфунkциoнaлeн, ocoбeннo пoлeзeн нaпpимep пpи пepexoдe c mysql нa дp.бaзы: firebird, oracle. Вce ckpипты нe измeнят cвoи фунkции. Ну koнeшнo пpи уcлoвии cлeдoвaния cтaндapту sql

50. Studentsov (05.06.2010 / 18:13)
firebird и oracle? нет. СПАСИБО

URL: https://visavi.net/topics/8998