Объектом по PHP
Никита Кислицин
Xakep, номер #057, стр. 057-092-3
class ClassName2 extends ClassName {
/* определяем новые свойства */
var $a3="value3";
/* Определение дополнительных методов */
function func2($a65) {
/* описание функции */
}
}
?>
Кодим
В качестве примера мы разработаем класс для работы с сетевыми соединениями через прокси-сервер. Это довольно актуальная для языка задача, с которой иногда приходится сталкиваться; написание же соответствующего класса помогает решить эту проблему. Кроме того, это показательный пример, он поможет тебе лучше вникнуть в тему и ощутить все удобство ОО-подхода к разработке информационных систем. Подробно прокомментированный код класса находится во врезке. Разобраться в нем крайне просто, если же что-то неясно - пиши, отвечу. На этом позволю себе откланяться.
<?
class HttpConnection {
var $ProxyHost;
var $ProxyPort;
function HttpOpenConnection ($Host, $Path, $Port) {
/* Проверяем, хочет ли юзер использовать прокси-сервер для соединения */
if (!isset($ProxyHost) || !isset($ProxyHost)) {
/* Подключаемся без использования прокси-сервера, поскольку
пользователь не определил соответствующие свойства класса */
$ConnectionHost=$Host;
$ConnectionPort=$Port;
echo $Port;
} else {
$ConnectionHost=$this->$ProxyHost;
$ConnectionPort=$this->$ProxyPort;
}
/* Следует заметить, что и запрос прокси-серверу, и запрос веб-браузеру имеют один и тот же вид (см. соответствующие RFC-документы). Поэтому вся разница между прямым подключением и коннектом через проксик заключается в удаленном сокете, с которым осуществляется связь. */
$Query="GET http://"."$Host:$Port".$Path." HTTP/1.1\r\n".
"Accept: */*\r\n"."User-Agent: Xa-style phpClass v1.0\r\n".
"Host:$Host\r\n\r\n";
/* Открываем сокет с удаленной точкой связи */
$SocketPointer=fsockopen($ConnectionHost, $ConnectionPort);
if ($SocketPointer) { /* Если соединение установлено */
fputs($SocketPointer, $Query); /* Пишем в сокет запрос */
return $SocketPointer; /* Возвращаем указатель на соединение */
} else return false; /* Если соединение не удалось установить, возвращаем false */
}
?>
<?
/* Пример использования класса */
Require Class.php; /* подключаем класс */
$conn=new HttpConnection; /* создаем новый экземпляр класса */
$conn->ProxyHost="192.168.0.1"; /* Определяем свойства объекта */
$conn->ProxyPort=3128;
$fp=$atom->ShowFile("www.host.ru", "/index.html", 80); /* Вызываем метод ShowFile */
?>