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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> объектное vs процедурное, программирование в PHP 
:(
    Опции темы
Gold Dragon
Дата 28.12.2006, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



ладно, примерно понял.. Только не видят проблем те, кто это умеет  делать smile 

Тогда вопрос в развитие темы.. Я разбирался в разных готовых скриптах и вижу что все спользуют классы. Я почему-то обхожусь одими функциями. Есть ли вообще смысл в классах (немного не так спросил smile ) , т.е. как сильно это облегчает или ускоряет работу?

Это сообщение отредактировал(а) Gold Dragon - 28.12.2006, 07:24


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 28.12.2006, 10:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(Gold Dragon @  28.12.2006,  07:22 Найти цитируемый пост)
. Я почему-то обхожусь одими функциями. 

Функции это рутина, которая в конечном счете превращается в кашу, в которой потом разработчик начинает месить грязь. Классы, это иерархическая структурированная модель твоего приложения. Обратись к литературе по ООА и ООП, не важно какой язык, лишь бы теория была.

ЗЫ. Могу посоветовать почтитать на досуге Гради Буч-а "Объектно-ориентированный анализ и проектирование". Занимательная весч smile

Добавлено @ 10:35 
Тем более что в пятом PHP полностью переработана объектная модель smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Mal Hack
Дата 28.12.2006, 15:46 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Gold Dragon, разницы в подходе - никакой. Реализация просто несколько более запутанная и менее структурированная получается.
PM ICQ   Вверх
-=Ustas=-
Дата 28.12.2006, 16:04 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(Mal Hack @  28.12.2006,  15:46 Найти цитируемый пост)
Gold Dragon, разницы в подходе - никакой.

Т.е.?! Можешь пояснить?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Mal Hack
Дата 28.12.2006, 16:11 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



-=Ustas=-, когда ты пишешь на ООП, ты в нужном месте делаешь $obj = new MyModulClass(), где MyModulClass - класс подключаемого модуля. Получается универсализм. Дальше работает уже сам модуль, через конструктор.
Тоже самое с функцями. Ты вызовешь какую-ть MainMyModulFunction, которая примет управление на себя и дальше будет вызывать те функции модуля, которые ей надо. Т.е. ядро только вызывает главную функцию модуля. Все. Ядру плевать что будет делать сам модуль.
PM ICQ   Вверх
-=Ustas=-
Дата 28.12.2006, 17:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(Mal Hack @  28.12.2006,  16:11 Найти цитируемый пост)
ты в нужном месте делаешь $obj = new MyModulClass(), где MyModulClass - класс подключаемого модуля. Получается универсализм. Дальше работает уже сам модуль, через конструктор.

Ну это уже детали реализации smile Когда я говорил постом выше, я имел виду более обощено архитектуру модели и т.д. в этих самых подходах. 
Просто с твоим выражением "разницы в подходе - никакой" я категорично не согласен, т.к. тогда бы не было таких понятий как ООП и ПОП. ПОП - это последовательность выполнения действий, ООП - это поведение и взаимодействие. Зацитирую одного теоретика (непомню кто, либо Буч либо Страуструп)
Цитата

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


Ладно, Mal Hack, я прекращаю, ибо пахнет "ПОП vs ООП"  smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Mal Hack
Дата 28.12.2006, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



-=Ustas=-, это все так, ты прав, но моей ключевой мыслью было то, что:

Цитата(Mal Hack @  28.12.2006,  16:11 Найти цитируемый пост)
Т.е. ядро только вызывает главную функцию модуля. Все. Ядру плевать что будет делать сам модуль. 

Уж как это будет представлено - другой вопрос, ООП так ООП, СП, так СП.


Цитата(-=Ustas=- @  28.12.2006,  17:45 Найти цитируемый пост)
ООП - это поведение и взаимодействие

Давай будем реалистами. Применительно к PHP, объекты все равно несут лишь информационную модель скрипта, событиыйности-то нету smile
PM ICQ   Вверх
-=Ustas=-
Дата 28.12.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(Mal Hack @  28.12.2006,  18:06 Найти цитируемый пост)
Применительно к PHP

Ну объектной модели PHP еще ползти smile Хотя в 5-ой значительные измения.
Цитата(Mal Hack @  28.12.2006,  18:06 Найти цитируемый пост)
Ядру плевать что будет делать сам модуль.

Ну это уже парадигма, сложенная на протяжении нескольких тысячилетий smile) Если же ядро будет контролировать еще и модули, то это не будет являться модульной архитектурой smile Высказался немного утрировано, но думаю понятно smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Mal Hack
Дата 28.12.2006, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(-=Ustas=- @  28.12.2006,  18:32 Найти цитируемый пост)
Ну объектной модели PHP еще ползти smile Хотя в 5-ой значительные измения.

Но событийности, без изменения концепции языка, в нем все равно не будет.
PM ICQ   Вверх
Vaulter
Дата 28.12.2006, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



а если взять конкретно OOП и PHP?
ведь по сути обьекта удобно это когда он существует "лопатя" запросы и т.д.
а в PHP важно в тоже время скорость обработки запроса smile
кстати давно задумывался над PHPшными демонами smile


--------------------
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 28.12.2006, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(Vaulter @  28.12.2006,  22:43 Найти цитируемый пост)
а если взять конкретно OOП и PHP?
ведь по сути обьекта удобно это когда он существует "лопатя" запросы и т.д.
а в PHP важно в тоже время скорость обработки запроса smile

Это уже надо смотреть на конкретной реализацией.


Цитата(Vaulter @  28.12.2006,  22:43 Найти цитируемый пост)
кстати давно задумывался над PHPшными демонами smile 

Все-таки это не PHP'шное дело.
PM ICQ   Вверх
Gold Dragon
Дата 29.12.2006, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



Цитата(-=Ustas=- @  28.12.2006,  10:30 Найти цитируемый пост)
ЗЫ. Могу посоветовать почтитать на досуге Гради Буч-а "Объектно-ориентированный анализ и проектирование". Занимательная весч
 если есть в электронном виде, с удовольствием почитаю..

Так народ, что такое ПОП и ООП? smile

всё равно не могу понять... Вот как я делаю.. Просто создаю разные функции: одна подключает бызу, другая получает данные, третья запихивает в базу. На сколько я понимаю, класс это тоже самое, только подключается чуть по другому и помоему код больше получается



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 29.12.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(Gold Dragon @  29.12.2006,  14:30 Найти цитируемый пост)
Так народ, что такое ПОП и ООП? smile

ООП - объектно ориентированное программирование.
ПОП - процедурно-ориентированное, если я правильно понял. Мы его просто структурным называли.

Цитата(Gold Dragon @  29.12.2006,  14:30 Найти цитируемый пост)
всё равно не могу понять... Вот как я делаю.. Просто создаю разные функции: одна подключает бызу, другая получает данные, третья запихивает в базу. На сколько я понимаю, класс это тоже самое, только подключается чуть по другому и помоему код больше получается

Да тоже самое. Только при ООП у тебя все эти функции как бы в одной переменной лежат. Ну плюс добавляются разные вкусности типа уровней доступа, свойств, что делает процесс кодинга удобнее.
PM ICQ   Вверх
Gold Dragon
Дата 29.12.2006, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



давайте на примере если не трудно.. вот пример моих функций

Код

function fContentMenu($z){
//********************************************************************
// функция подключения к базе
//********************************************************************
       GLOBAL $baza;
       mysql_connect($baza['SERVER'], $baza['USER'], $baza['PASSW']) or die("Ошибка соединения с сервером");
       mysql_query("SET NAMES cp1251;") or die("Ошибка выбора кодовой страницы"); 
       mysql_select_db($baza['DB']) or die("Ошибка подключения базы");
}

function fContentMenu($z){
//********************************************************************
// функция для получение списка материала по категории
//********************************************************************
    $r = mysql_query($z);
    $info = array();
    for ($i=0; $i<mysql_num_rows($r); $i++) {
        $f = mysql_fetch_array($r);
        $info[$i]['id'] = $f['id'];
        $info[$i]['kat'] = $f['kat'];
        $info[$i]['name'] = $f['name'];
        //$info[$i]['text'] = $f['text'];
        $info[$i]['data'] = fDataToString($f['data']);
        $info[$i]['file'] = $f['file'];
        $info[$i]['n'] = ($i+1);
    }
    if(mysql_num_rows($r)==0){
        header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?page=error&id=1");
        exit;
    }
    return $info;
}

function fContentText($z){
//********************************************************************
// функция для получение текста материала
//********************************************************************
    $r = mysql_query($z);
    if(mysql_num_rows($r)>0){
        $f = mysql_fetch_array($r);
        $info['id'] = $f['id'];
        $info['kat'] = $f['kat'];
        $info['name'] = $f['name'];
        $info['text'] = $f['text'];
        $info['data'] = fDataToString($f['data']);
    }else{
        header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?page=error&id=1");
        exit;
    }
    return $info;
}

как это заменить на класс?


ps
кто-то обещал доку про классы.  smile 


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 29.12.2006, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Код

class RD{

function fContentMenu($z){
//********************************************************************
// функция подключения к базе
//********************************************************************
       GLOBAL $baza;
       mysql_connect($baza['SERVER'], $baza['USER'], $baza['PASSW']) or die("Ошибка соединения с сервером");
       mysql_query("SET NAMES cp1251;") or die("Ошибка выбора кодовой страницы"); 
       mysql_select_db($baza['DB']) or die("Ошибка подключения базы");
}
function fContentMenu($z){
//********************************************************************
// функция для получение списка материала по категории
//********************************************************************
    $r = mysql_query($z);
    $info = array();
    for ($i=0; $i<mysql_num_rows($r); $i++) {
        $f = mysql_fetch_array($r);
        $info[$i]['id'] = $f['id'];
        $info[$i]['kat'] = $f['kat'];
        $info[$i]['name'] = $f['name'];
        //$info[$i]['text'] = $f['text'];
        $info[$i]['data'] = fDataToString($f['data']);
        $info[$i]['file'] = $f['file'];
        $info[$i]['n'] = ($i+1);
    }
    if(mysql_num_rows($r)==0){
        header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?page=error&id=1");
        exit;
    }
    return $info;
}
function fContentText($z){
//********************************************************************
// функция для получение текста материала
//********************************************************************
    $r = mysql_query($z);
    if(mysql_num_rows($r)>0){
        $f = mysql_fetch_array($r);
        $info['id'] = $f['id'];
        $info['kat'] = $f['kat'];
        $info['name'] = $f['name'];
        $info['text'] = $f['text'];
        $info['data'] = fDataToString($f['data']);
    }else{
        header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?page=error&id=1");
        exit;
    }
    return $info;
}

}

$obj = new RD();
$obj -> fContentMenu($z);

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


 




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


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

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