Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Необходим ли ООП в php? 
:(
    Опции темы
s0lman
Дата 2.8.2009, 19:52 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



По-моему, на форуме достаточно дискуссий по целесообразности использования  ООП. Во всяком случае, даже я в теме ничего нового не нашел 


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
nerezus
Дата 2.8.2009, 21:13 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Совет автору: просто не заморачивайся и пиши на пхп.
Потом в определенный момент поймешь, что тупо портишь свое время, хотя мог бы работать эффективнее.
Я примерно так и дошел.

Смотря на старый код понимаю, что то, что делал 2 недели, сейчас могу сделать за день. И не представляю код без ООП.

А начиналось все с J2ME: надо было разработать свои контроллы.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
youri
Дата 3.8.2009, 04:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Цитата(NLspieler @  2.8.2009,  14:35 Найти цитируемый пост)
ООП позволяет защититься от следующих недопустимых в реальном мире операций,тем самым улчушая процесс моделирования

вообще-то можно договориться, что никто не изменяет массив напрямую, только через функции

Цитата(NLspieler @  2.8.2009,  15:01 Найти цитируемый пост)
Давайте вернемся к нашей Машке

по-приличнее не придумал примера?
PM   Вверх
fesor
Дата 3.8.2009, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 16.7.2009
Где: Минск

Репутация: 4
Всего: 4



И как же ты "договоришься" изменять массив через функцию? Намного проще использовать объекты в таких ситуациях, и ненадо извращения придумывать.
PM MAIL WWW   Вверх
youri
Дата 3.8.2009, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Цитата(fesor @  3.8.2009,  09:26 Найти цитируемый пост)
И как же ты "договоришься" изменять массив через функцию?

а что, ты никогда не придерживаешься никаких соглашений?

Цитата(fesor @  3.8.2009,  09:26 Найти цитируемый пост)
Намного проще использовать объекты в таких ситуациях, и ненадо извращения придумывать.

ну я раньше и говорил, что не понятно зачем эмулировать классы/объекты в языке, в котором они присутствуют. Это можно рассматривать как вариант для языков без классов/объектов

кроме того, еще с использованием ООП ты разбиваешь свою задачу на небольшие подзадачи и можешь заниматься каждой из них, не думая об остальных деталях системы. Т.е. проще решить несколько небольших задач, чем одну большую. Хотя изначальный вопрос был скорее про необходимость в ООП-синтаксисе
PM   Вверх
fesor
Дата 3.8.2009, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 16.7.2009
Где: Минск

Репутация: 4
Всего: 4



необходимости в ООП синтаксисе как таковой не вижу. просто может красивее так. Хотя опять же на вкус и цвет...

по поводу разбития на подзадачи - это наверное самое главное) как говрил наш Физик - "Самое сложное в решении задачи это грамотно разбить ее на части. А потом решение этих частей по отдельности даст нам искомый ответ"
PM MAIL WWW   Вверх
NLspieler
Дата 3.8.2009, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Цитата(youri @  3.8.2009,  09:44 Найти цитируемый пост)
 с использованием ООП ты разбиваешь свою задачу на небольшие подзадачи

Этого можно добится используя обыкновенные функции.



Пока что две причины использования ООП в php, которые я понял:

1. Пример с Машкой: невозможномсть изменения свойств в обход методов.
Тем самым достигается дополнительная защита от ошибок.

2. Наследование. Хорошая возможность ООП. 
Но все равно, мне трудно представить себе задачу, требующую реализации этого средства. 



PM MAIL   Вверх
nerezus
Дата 3.8.2009, 12:17 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Но все равно, мне трудно представить себе задачу, требующую реализации этого средства. 
 Сделай сайт на фреймворке. Потом подумай, во сколько раз дольше бы ты его белал без FW.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
youri
Дата 3.8.2009, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Цитата(fesor @  3.8.2009,  10:45 Найти цитируемый пост)
по поводу разбития на подзадачи - это наверное самое главное

но вообще-то это не заслуга ООП
Цитата

In our study of program design, we have seen that expert programmers control the complexity of their designs with the same general techniques used by designers of all complex systems. They combine primitive elements to form compound objects, they abstract compound objects to form higher-level building blocks, and they preserve modularity by adopting appropriate large-scale views of system structure.


Цитата(fesor @  3.8.2009,  10:45 Найти цитируемый пост)
необходимости в ООП синтаксисе как таковой не вижу. просто может красивее так

думаю немного читабельнее

Цитата(NLspieler @  3.8.2009,  12:14 Найти цитируемый пост)
Этого можно добится используя обыкновенные функции

вопрос в том, как это сделать используя простые функции. Если у тебя в резальтате будет куча функций и куча глобальных переменных, то ты нифига не разбил задачу на подзадачи, глобальные переменные связывают все эти функции в одну кучу, да и на функции можно по-разному разбить. Если же глобальных переменных минимум и функции разбиты на части (считай классы), за котороыми закреплены определенные четкие обязанности, то это пожалуй хороший вариант. Думаю так. Но как я сказал, это не то чтобы заслуга ООП. ООП же скорее дает свои принципы: инкапсуляция, абстракция, полиморфизм. Твои же причины: они скорее более низкоуровневые (конкретные)

Цитата(NLspieler @  3.8.2009,  12:14 Найти цитируемый пост)
Пример с Машкой: невозможномсть изменения свойств в обход методов.Тем самым достигается дополнительная защита от ошибок

не во всех языках это возможно, не во всех языках есть модификаторы доступа

Цитата(nerezus @  3.8.2009,  12:17 Найти цитируемый пост)
 Сделай сайт на фреймворке. Потом подумай, во сколько раз дольше бы ты его белал без FW

фреймворки для того и создаются, чтобы быстрее решать определенного рода задачи. Но заслуга ли это ООП или чего другого? Ты можешь объяснить, как ООП помогает создать хороший фреймворк?

Это сообщение отредактировал(а) youri - 3.8.2009, 13:41
PM   Вверх
nerezus
Дата 3.8.2009, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Но заслуга ли это ООП или чего другого? Ты можешь объяснить, как ООП помогает создать хороший фреймворк?
 Покажи мне хороший фреймворк без ООП ;)

Впринципе я вижу такое решение, но в функциональном стиле(т.е. тоже не процедурный подход).  И нафиг это не надо, когда есть ООП.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
lukas
Дата 3.8.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



nerezus

щас будут тыкать в исходники друпала...   smile 


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
youri
Дата 3.8.2009, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Цитата(nerezus @  3.8.2009,  13:52 Найти цитируемый пост)
Покажи мне хороший фреймворк без ООП ;)

у меня с фреймворками немного опыта, потому и спрашиваю. Паттерны ты, кстати, тоже к ООП относишь? Хотелось бы просто конкретных более-менее реальных примеров применения либо принципов ООП, либо паттернов. Или под ООП ты подразумеваешь синтаксис (классы, объекты)?

Добавлено @ 14:01
Цитата(lukas @  3.8.2009,  13:56 Найти цитируемый пост)
щас будут тыкать в исходники друпала...

lukas, я ж не холивар тут устроить хочу. Меня интересует информация от человека, у которого есть опыт использования фреймворков

Это сообщение отредактировал(а) youri - 3.8.2009, 14:01
PM   Вверх
NLspieler
Дата 3.8.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Цитата(youri @  3.8.2009,  13:40 Найти цитируемый пост)
вопрос в том, как это сделать используя простые функции


Ну например в гостевой книге есть такие функции для работы с БД:

  - подключение
  - добавление сообщения
  - редактирование сообщения
  - удаления сообщения
  - узнать количество страниц в гостевой книге

  - отображения определенной страницы ГК

  - добавление ИП в бан-лист
  - удаление ИП из бан-листа
  - проверка на присутствие ИП в бан листе


И зачем здесь использовать классы? Ведь задача и так уже разбита на множество простых ?



PM MAIL   Вверх
nerezus
Дата 3.8.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Паттерны ты, кстати, тоже к ООП относишь?
 Естественно.

Цитата

Или под ООП ты подразумеваешь синтаксис (классы, объекты)?
 Нет. На C тоже можно писать в ООП-стиле, хотя там нет ни классов, ни объектов.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
youri
Дата 3.8.2009, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Цитата(nerezus @  3.8.2009,  15:30 Найти цитируемый пост)
Естественно.

не так уж и естественно, но это уже скорее не особо важные нюансы терминологии. Но как насчет конкретных примеров. Покажи человеку, например, как в его задаче поможет применение ООП или паттернов? Потому что это как минимум первый этап, понять что другие люди придумали умную штуку. Второй этап - объяснить кому-нибудь эту штуку
PM   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0533 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.