• Главная
  • » PHP
  • » Объясните на примерах выгоду использования ООП

#1 2010.04.11 22:51

Morgan
Участник
Зарегистрирован: 2009.03.31
Сообщений: 333
Карма: 10
Профиль Веб-сайт

Объясните на примерах выгоду использования ООП

smile  пожалуйста


Натан ротшильд :
Кто владеет информацией, тот владеет миром

Неактивен

#2 2010.04.11 23:40

Fuelen
Участник
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Объясните на примерах выгоду использования ООП

http://habrahabr.ru/blogs/php/37576/
http://habrahabr.ru/blogs/php/37610/
Про полиморфизм smile вторая запись как бы дополняет первую.
Посмотри примеры

Отредактировано Fuelen (2010.04.11 23:58)


на хую вас вертів

Неактивен

#3 2010.04.11 23:43

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Объясните на примерах выгоду использования ООП

Тут можно говорить абстрактно или приводить конкретные технические реализации.
Мне больше нравится первый вариант.
Во первых, я считаю, главное приемущество, перед стандартным для PHP, процедурным подходом, - в более четком структурировании кода.
Когда проект вырастает из 500 строчек кода в хотябы 5000, при процедурном подходе это значило бы полное его переписывание (если кодеру не наплевать на качество кода, конечно). В случае с ООП, мы будем заниматься не переписыванием,  расширением функционала существующего кода. Ну и в итоге, с ООП мы получим приемлимый для дальнейшего расширения код, а в случае с процедурным стилем очередную WAP CMS...
ООП код много легче портировать, не даром ведь все библиотеки - это класс, либо набор классов. В случае с PEAR, там еще интереснее, куча наследований и переиспользований API уже существующих классов.
Например, сейчас я сильно жалею, что в Gmanager functions.php написан в процедурном стиле, расширять его довольно непросто, т.к. это влечет за собой переписывание кучи кода.
Ну и вообще, http://php.net/oop
Из технических примеров, приведу последнее, чем пользовался и мне это показалось интересным.

Код:

1
span style="color: #0000BB"><?phpclass Test{ public $PDO; // Собственно конструктор public function __construct ($db, $other) { // Присваиваем переменной объект PDO // Теперь у нас доступен PDO из нашего класса $Test->PDO->query('SELECT 1'); $this->PDO = new PDO($db, $other); } public function __get ($name) { // А в данном случае, это такая обрезанная реализация сингелтона // Если объект PDO нам нужен всегда (ну допустим это так), то Smarty нет, и в данном случае объект создастся только при первом его вызове $this->Smarty = new Smarty; } public function __call ($name, $arg) { // А тут мы реализуем логирование // Вызываем некой "несуществующий" метод и выполняем то, что заложено в логику + еще что-то на ВСЕ такие как-бы "несуществующие" методы switch ($name) { case 'one': $this->PDO->query('SELECT 1'); break; case 'two': $this->PDO->query('SELECT 2'); break; } $this->setLog('Вызван ' . $name); }}?>

Или вот еще, недавно только узнал, что стандартные функции PHP для работы с датами работать корректно будут только с датами до 2038 года Пруф (Смотерть Notes)
Выход - ООП реализация в виде встроенного класса Date из 5-го PHP. А в случае с ошибками, он кидает эксепшены, что так же заставляет нас пользоваться и ими wink
К слову, я работал в команде с JAVA программистами и, например, у них там на эксепшенах может быть построена логика программы, а не только завершение работы, как это часто делают в PHP.

Неактивен

#4 2010.04.12 00:00

Fuelen
Участник
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Объясните на примерах выгоду использования ООП

Как-то и в голове не укладывается, чтобы логика программы на эксепшынах была построена...


на хую вас вертів

Неактивен

#5 2010.04.12 00:07

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Объясните на примерах выгоду использования ООП

Код:

1
span style="color: #0000BB"><?phptry { $timestamp = new Date($_GET['хуита']); $timestamp = $timestamp->format('U');} catch (Exception $e) { $timestamp = $_SERVER['REQUEST_TIME'];}

такая вот мини логика. по сути те же if / else только с выходом при первой проблемной ситуации
Добавлено спустя   2 минуты  38 секунд:
Да, еще есть такая клевая штука как автолоадер. Можно забыть про всякие require и include (ну во многих случаях)

Неактивен

#6 2010.04.12 00:37

Fuelen
Участник
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Объясните на примерах выгоду использования ООП

Сначала я думал, что эксепшыны - лес дремучий гггг
После прочтения статьи http://habrahabr.ru/blogs/php/58687/ как бы понял для чего они.
У меня только в 1 месте исключения используются - подключение к БД smile
Исключения в моём понимании - более крутая и ОО замена функции die()


на хую вас вертів

Неактивен

#7 2010.04.12 02:42

AxqpxA
Участник
Откуда: Белгород
Зарегистрирован: 2010.04.10
Сообщений: 5
Карма: 0
Профиль Веб-сайт

Re: Объясните на примерах выгоду использования ООП

А я так и не вдуплил в ооп! а точнее посидел минут 5, почитал статью и больше не брался! все как то времени нет!

Неактивен

#8 2010.04.12 10:50

Morgan
Участник
Зарегистрирован: 2009.03.31
Сообщений: 333
Карма: 10
Профиль Веб-сайт

Re: Объясните на примерах выгоду использования ООП

у Denvas'а везде процедурный подход.
// придумал еще одно практическое применение   cool


Натан ротшильд :
Кто владеет информацией, тот владеет миром

Неактивен

#9 2010.04.12 11:07

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Объясните на примерах выгоду использования ООП

Denvas в первую очередь менеджер, а не программист. И на его код равняться не следует.

Неактивен

  • Главная
  • » PHP
  • » Объясните на примерах выгоду использования ООП

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.014 s