Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: хотел бы побольше узнать о Классах
 
 автор: Panker   (12.10.2006 в 10:06)   письмо автору
 
 

Доброе утро, вот уже БЛИН уже 10 часов, 2 часа в трубу улетели :(

Ладно не об этом речь!
Хотел бы поподробней узнать о классах, и ещё интиресно, классы это ООП или нет? :)

Вот говорят классы упрощают жизнь, если да то пожалуйста расскажите как!
Потом говорят что можно сделать в разных классах, типа классы по одиночки а потом как конструктор всё собрать!

Вот допустим такой код


<?
class Message {
// Поля данных
    
var $dates;
    var 
$nickname;
    var 
$email;
    var 
$message;
// Метод конструктор
function Message($dates$nickname$email$message) {
    
$this->dates=$dates;
    
$this->nickname=$nickname;
    
$this->email=$email;
    
$this->message=$message;
}
// Метод формирует сообщение
function make() {
    print
"<TABLE>\r\n";
    print
"<TR><TD>Имя: ".$this->nickname."<BR>E-mail: 
    <A href=\"mailto:"
.$this->email."\">".$this->email."</A>
    </TD></TR>\r\n"
;
    print
"<TR><TD>".$this->message."</TD></TR>\r\n";
    print
"<TR><TD>Добавлено: ".$this->dates."</TD></TR>\r\n";
    print
"</TABLE>\r\n";
}
}
?>

Это типа для гостевой или коментариев, но чем он лучше допустим обычного приёма информации, или я не увидел изюменку в этом?

Плиз поподробней если можно где применяются, на много ли улучшает жизнь это всё ?
И если действительно на много, то почему о них не говорят, или я не замечаю? :)

   
 
 автор: Axxil   (12.10.2006 в 10:24)   письмо автору
 
   для: Panker   (12.10.2006 в 10:06)
 

Почему не говорят? Мы тут раз в неделю наверное, если не чаще спорим насчёт полезности ООП в PHP.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=25270&page=1
Введение в ООП от Cheopsа :)
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=161
И в целом:
http://www.softtime.ru/forum/srchform.php?id_forum=0&name=%EE%E1%FA%E5%EA%F2&numberthemes=30&srchwhere=1&id_forum=1&logic=0&send=%CD%E0%E9%F2%E8

   
 
 автор: cheops   (12.10.2006 в 13:02)   письмо автору
 
   для: Panker   (12.10.2006 в 10:06)
 

>классы это ООП
да
>Вот говорят классы упрощают жизнь
не всегда, а для больших иерархических систем. Для гостевой книги, пример котороый вы привели - они усложняют жизнь и сильно. ООП это гаубица - застрелиться или вести ближний бой из неё не получится, хотя примеров этого в Интернет и различных CMS вы найдёте очень много.

Сейчас вожусь с FrameWork, который очень походит на Formularium Антона Федорченко - система построения произвольных HTML-форм и автоматической проверки правильности заполнения полей. Здесь ООП оправдан - от абстрактного класса field наследуются все остальные поля, абстрактные методы класса field не позволяют забыть реализовать какой-то из методов, в результате поля можно обрабатывать в цикле. От скрытого поля можно унаследовать скрытое целочисленное поле, от текстового поля можно унаследовать поле для ввода e-mail. Объект формы - это набор объектов полей. Это положительный пример использования ООП.

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

   
 
 автор: Axxil   (12.10.2006 в 13:45)   письмо автору
 
   для: cheops   (12.10.2006 в 13:02)
 

Интерфейс доступа к БД в php неэргономичный что ли...
Для того чтобы вытащить выборку нужно нагородить конструкцию, хотя логичнее было бы сделать это просто типа select_table(), если нужен конкретный столбец то select_col($name)
вот это в основном толкает разработчиков на написание своих библиотек. Да и защиту проще делать когда весь интерфейс доступа к базе лежит в одном месте. Достаточно в классе определить метод который будет отвечать за валидацию запросов. Не устаю приводить в пример библиотеку dbSimple от dklab. На мой взгляд лучшая реализация класса доступа к БД.

А ещё можно сделать абстрактный класс работы с данными не зависящий от того где и как данные храняться. А потом просто в зависимости от потребностей наследовать его от классов работы с хранилищами, будь то БД, текстовые файлы, XML и т.д.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования