Зачем ООП в ПХП?

Статус
Закрыто для дальнейших ответов.

Daltonik

Well-Known Member
Регистрация
10.01.2010
Сообщения
120
Вопрос очень прост: зачем нужно ООП в ПХП?
Примеры от действующих веб-программистов приветствуються...
Ну и еще в нагрузку: я изучил ХТМЛ, КСС, ПХП и получил нужные знания по работе с БД... стоит ли мне лезть сейчас в ООП или все таки лушче пока на что-то другое обратить свой взор?
 

tigra60

Спасатель
Регистрация
10.12.2009
Сообщения
1 990
ООП позволяет быстрее и проще, чем процедурное программирование, создавать большие проекты, особенно, когда работает несколько человек.
Естественно, для написания обработчика формы ввода имени, который выводит на экран "Привет, Коля!" ООП совсем ни к чему.
А вот при написании движка сайта - очень и очень!

стоит ли мне лезть сейчас в ООП
Стоит разобраться и понять, что это вообще такое, абстракно от РНР. Тогда станет понятно по ситуации - изучать ООП в РНР сейчас или немного погодя.
 

Daltonik

Well-Known Member
Регистрация
10.01.2010
Сообщения
120
Дело в том что я понимаю что такое ООП, благо этот предмет шол у меня полтора года )))
Но вот понять как оно в ПХП пригодиться я не могу.
Когда мне его преподовали, то без ООП и программу то не напишешь нормально (работали в С).. а в ПХП, я как то и без него пишу!!!
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
Дело в том что я понимаю что такое ООП, благо этот предмет шол у меня полтора года )))
Но вот понять как оно в ПХП пригодиться я не могу.
Когда мне его преподовали, то без ООП и программу то не напишешь нормально (работали в С).. а в ПХП, я как то и без него пишу!!!
посмотрите на примеры паттернов программирования. http://www.agiledev.ru/
на сях без ооп прекрасно пишутся программы :) а осваивать необходимо, посмотрите на примеры методов __sell __call хотя бы, они сильно облегчают работу.
 

Daltonik

Well-Known Member
Регистрация
10.01.2010
Сообщения
120
может метод set , а не sell?
 

Daltonik

Well-Known Member
Регистрация
10.01.2010
Сообщения
120
а стоит ли изучать движок codeighnter и модель-вид-котроллер!?
 

kein

Частный случай
Регистрация
23.11.2009
Сообщения
446
Простой пример. Интернет магазин. Объект коллекция товаров, имеет методы addAttributeToFilter, addAttributeToSelect итд.
До меня уже было все написано, и методы помогают мне работать с коллекциями товаров.
Что же я пишу в коде:
Код:
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect(*);
$collection->addAttributeToFilter('category_id',array('in'=> array(16,17,19,20));
foreach($collection as $product){
  echo '<a href="'.$product->getUrl().'"/>'.$product->getName().'</a>';
}
Так я вывел ссылки на все товары из категорий 16,17,19,20.
Мне все равно какие поля есть у продуктов и категорий, как все организованно в базе, мне даже не важно знать что за код используется, и используются ли вообще там базы данных, или все на файлах.
Я использую методы и получаю результат, легко читать и понять что же делает код. Даже если не разбираешься в системе.
Если разработчики что-то поменяют внутри, или изменят что-то, мне не придется исправлять свой код во множестве мест где используются ссылки на продукты и их имена. Все будет работать так же.
Если я вернусь когда нибудь к этому коду, я пойму как все это работает. И мне не придется сидеть и вспоминать за что отвечает та или иная таблица в запросе, и как работают всевозможные join'ы.

MVC изучать стоит.Со временем чем сложнее будет становится проект, важно будет разделять работу. Важно будет что бы разные люди работающие над проектом делали только свою работу.
В принципе в MVC нечего изучать, там статья на 1 страницу, важно понять основы.

codeigniter изучить стоит. Он достаточно легок по сравнению например ZendFramework. Ну и соответствено не будете делать работу которую за вас уже тысячу раз писали другие люди)
 

Daltonik

Well-Known Member
Регистрация
10.01.2010
Сообщения
120
Простой пример. Интернет магазин. Объект коллекция товаров, имеет методы addAttributeToFilter, addAttributeToSelect итд.
До меня уже было все написано, и методы помогают мне работать с коллекциями товаров.
Что же я пишу в коде:
Код:
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect(*);
$collection->addAttributeToFilter('category_id',array('in'=> array(16,17,19,20));
foreach($collection as $product){
  echo '<a href="'.$product->getUrl().'"/>'.$product->getName().'</a>';
}
Так я вывел ссылки на все товары из категорий 16,17,19,20.
Мне все равно какие поля есть у продуктов и категорий, как все организованно в базе, мне даже не важно знать что за код используется, и используются ли вообще там базы данных, или все на файлах.
Я использую методы и получаю результат, легко читать и понять что же делает код. Даже если не разбираешься в системе.
Если разработчики что-то поменяют внутри, или изменят что-то, мне не придется исправлять свой код во множестве мест где используются ссылки на продукты и их имена. Все будет работать так же.
Если я вернусь когда нибудь к этому коду, я пойму как все это работает. И мне не придется сидеть и вспоминать за что отвечает та или иная таблица в запросе, и как работают всевозможные join'ы.

MVC изучать стоит.Со временем чем сложнее будет становится проект, важно будет разделять работу. Важно будет что бы разные люди работающие над проектом делали только свою работу.
В принципе в MVC нечего изучать, там статья на 1 страницу, важно понять основы.

codeigniter изучить стоит. Он достаточно легок по сравнению например ZendFramework. Ну и соответствено не будете делать работу которую за вас уже тысячу раз писали другие люди)
спасибо за такой хороший ответ!
Не могли бы вы посоветовать с чего лучше начать изучения (всмысле материаллы)!?
 

kein

Частный случай
Регистрация
23.11.2009
Сообщения
446
Честно говоря уже не помню откуда я учился, начинал с Delphi.
Объектно восприятие мира все таки так близко к человеку, мы даже системы рассматриваем как объекты. (Кстати интересно восточная философия рассматривает мир не как объекты а как постоянное движение, как перенести этот взгляд в программирование и что получится :blink: )
Во всяком случае можно вгуглить(люблю это слово ;) ) "ООП в php" и будет куча материалов.
Есть так же интересная тема как "Паттерны програмирования в ООП" возможно такие статьи раскроют вам смысл и всю силу программирования. К сожалению по паттерна программирования не так много материалов для php. Если вы хоть немного знакомы с C++ то стоит почитать Приемы объектно-ориентированного проектирования. Паттерны проектирования.
Конечно кто-то может сказать что паттерны проектирования вам пока изучать рано, но мне кажется стоит, они показывают на сколько сильным и гибким может быть ООП, и дают представления, зачем же все таки оно нужно.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ