| |
|
|
| | Доброе утро, вот уже БЛИН уже 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";
}
}
?>
|
Это типа для гостевой или коментариев, но чем он лучше допустим обычного приёма информации, или я не увидел изюменку в этом?
Плиз поподробней если можно где применяются, на много ли улучшает жизнь это всё ?
И если действительно на много, то почему о них не говорят, или я не замечаю? :) | |
| |
|
|
|
| |
|
|
| |
для: Panker
(12.10.2006 в 10:06)
| | | >классы это ООП
да
>Вот говорят классы упрощают жизнь
не всегда, а для больших иерархических систем. Для гостевой книги, пример котороый вы привели - они усложняют жизнь и сильно. ООП это гаубица - застрелиться или вести ближний бой из неё не получится, хотя примеров этого в Интернет и различных CMS вы найдёте очень много.
Сейчас вожусь с FrameWork, который очень походит на Formularium Антона Федорченко - система построения произвольных HTML-форм и автоматической проверки правильности заполнения полей. Здесь ООП оправдан - от абстрактного класса field наследуются все остальные поля, абстрактные методы класса field не позволяют забыть реализовать какой-то из методов, в результате поля можно обрабатывать в цикле. От скрытого поля можно унаследовать скрытое целочисленное поле, от текстового поля можно унаследовать поле для ввода e-mail. Объект формы - это набор объектов полей. Это положительный пример использования ООП.
Отрицательный пример: обращение к базе данных через ООП-итерфейс. База данных сама предоставляет интерфейс в виде набора функций, очень известный, распространённый, отлаженный. Нет сделаем свой собственный, никому не известный, с глюками... зачем делать надстройку над уже существующим интерфейсом - иерархии нет никакой, в результате повторного использования кода не происходит, а вся система усложняется на столько, что поиск ошибки в SQL-запросе превращается в многочасовую эпопею. А полученный в результате код никто кроме разработчика прочитать не в состоянии. | |
| |
|
|
| |
|
|
| |
для: cheops
(12.10.2006 в 13:02)
| | | Интерфейс доступа к БД в php неэргономичный что ли...
Для того чтобы вытащить выборку нужно нагородить конструкцию, хотя логичнее было бы сделать это просто типа select_table(), если нужен конкретный столбец то select_col($name)
вот это в основном толкает разработчиков на написание своих библиотек. Да и защиту проще делать когда весь интерфейс доступа к базе лежит в одном месте. Достаточно в классе определить метод который будет отвечать за валидацию запросов. Не устаю приводить в пример библиотеку dbSimple от dklab. На мой взгляд лучшая реализация класса доступа к БД.
А ещё можно сделать абстрактный класс работы с данными не зависящий от того где и как данные храняться. А потом просто в зависимости от потребностей наследовать его от классов работы с хранилищами, будь то БД, текстовые файлы, XML и т.д. | |
| |
|
|