Рефераты. Разработка класса в PHP

Деструктор – это специальный метод класса, предназначенный для освобождения ресурсов, занятых объектом во время его существования. Этот метод всегда вызывается после всех остальных методов во время уничтожения объекта. В нем можно закрыть открытые файлы, отсоединиться от базы данных.

Конструктор и деструктор – это ключевые методы класса. Их наличие является одним из признаков объектно-ориентированной технологии. Но это не значит, что в каждом классе обязательно должны быть констуктор и деструктор – это необязательные элементы класса и их следует применять только при необходимости.


1.4 Объекты


Объекты объявляются с помощью ключевого слова new и являются экземпляром класса. Можно объявить несколько объектов (экземпляров) класса, точно так же как одному понятию стола может соответствовать несколько реальных столов, а из одной литейной формы можно получить много деталей.

Объекты являются такими же полноценными переменными. Можно создавать массив объектов, но при работе с ним необходимо учитывать особенности объявления и оперирования объектами.

Объекты, как и обычные переменные, можно передавать в качестве аргумента функции. Они могут выступать не только как параметры функций, но и как возвращаемые значения. Возвращаемый объект можно присвоить другому объекту или вызвать его методы или члены непосредственно.


Глава 2 – Реализация класса


Создаваемый нами класс будет называться Url_nav представлять собой массив и переменную:

$link_and_text_list – массив ссылок, в котором будут храниться адреса ссылок и текст к ним.

$delitmer – разделитель ссылок.

Для успешной работы класса нам понадобятся три метода:

функция, изменяющая стиль посещенных ссылок

функция, изменяющая стиль ссылок при наведении курсора мыши

функция, изменяющая стиль не посещенных ссылок

функция, которая будет добавлять обычную ссылку элемент в массив

функция, которая будет добавлять ссылку-рисунок в массив

функция, создающая горизонтальное меню навигации из массива

функция, создающая вертикальное меню навигации из массива

функция создающая заголовок

Опишем каждый метод класса более подробно.


2.1 Функция l_visited_style (изменение стиля посещенных ссылок)


При вызове функции пользователю надо будет ввести четыре параметра:

$color – цвет ссылок

$t_decor – оформление ссылок (например подчеркивание)

$f_size – размер шрифта ссылок

$f_font – название шрифта ссылок

Реализация функции на языке PHP будет иметь следующий вид:

function l_visited_style($color, $t_decor, $f_size, $f_font)

{

    echo('<STYLE type="text/css"> A:visited');

    echo("{");

    if ($color!="")

        {

            echo("color: ");

            echo($color);

            echo(";");

        }

    else

        {

            echo('color: #5f0000;');

        }

    if ($t_decor!="")

        {

            echo('text-decoration: ');

            echo($t_decor);

            echo(';');

        }

    else

        {

            echo('text-decoration: none;');

        }

    if ($f_size!="")

        {

            echo('font-size: ');

            echo($f_size);

            echo('pt;');

        }

    else

        {

            echo('font-size: 12pt;');

        }

    if ($f_font!="")

        {

            echo('font-family: ');

            echo($f_font);

            echo(';}');

        }

    else

        {

            echo('font-family: Arial;');

        }

    echo("}</STYLE>");

}


2.2 Функция l_hover_style (изменение стиля ссылок при наведении)


При вызове функции пользователю надо будет ввести четыре параметра:

$color – цвет ссылок

$t_decor – оформление ссылок (например подчеркивание)

$f_size – размер шрифта ссылок

$f_font – название шрифта ссылок

Реализация функции на языке PHP будет иметь следующий вид:

function l_hover_style($color, $t_decor, $f_size, $f_font)

{

    echo('<STYLE type="text/css"> A:hover');

    echo("{");

    if ($color!="")

        {

            echo("color: ");

            echo($color);

            echo(";");

        }

    else

        {

            echo('color: #000000;');

        }

    if ($t_decor!="")

        {

            echo('text-decoration: ');

            echo($t_decor);

            echo(';');

        }

    else

        {

            echo('text-decoration: blink, underline;');

        }

    if ($f_size!="")

        {

            echo('font-size: ');

            echo($f_size);

            echo('pt;');

        }

    else

        {

            echo('font-size: 12pt;');

        }

    if ($f_font!="")

        {

            echo('font-family: ');

            echo($f_font);

            echo(';}');

        }

    else

        {

            echo('font-family: Arial;');

        }

    echo("}</STYLE>");

}


2.3 Функция l_link_style (изменение стиля не посещенных ссылок)


При вызове функции пользователю надо будет ввести четыре параметра:

$color – цвет ссылок

$t_decor – оформление ссылок (например подчеркивание)

$f_size – размер шрифта ссылок

$f_font – название шрифта ссылок

Реализация функции на языке PHP будет иметь следующий вид:

function l_link_style($color, $t_decor, $f_size, $f_font)

{

    echo('<STYLE type="text/css"> A:link');

    echo("{");

    if ($color!="")

        {

            echo("color: ");

            echo($color);

            echo(";");

        }

    else

        {

            echo('color: #5f0000;');

        }

    if ($t_decor!="")

        {

            echo('text-decoration: ');

            echo($t_decor);

            echo(';');

        }

    else

        {

            echo('text-decoration: none;');

        }

    if ($f_size!="")

        {

            echo('font-size: ');

            echo($f_size);

            echo('pt;');

        }

    else

        {

            echo('font-size: 12pt;');

        }

    if ($f_font!="")

        {

            echo('font-family: ');

            echo($f_font);

            echo(';}');

        }

    else

        {

            echo('font-family: Arial;');

        }

    echo("}</STYLE>");

}


2.4 Функция add_item (добавляет элемент в массив)


При вызове данной функции пользователю надо будет ввести два параметра:

$title – отображаемый текст ссылки

$s_url – адрес, на который указывает ссылка

Таким образом, всю функцию можно описать следующей последовательностью действий:

определение конца массива

добавление в массив переменной $title

добавление в массив переменной $s_url

После перевода алгоритма на язык PHP получим следующую функцию:

function add_item($title, $s_url)

{

    $n=sizeof($this->link_and_text_list);

    $this->link_and_text_list[$n]['title']=trim($title);

    $this->link_and_text_list[$n]['url']=trim($s_url);

}


2.5 Функция add_img_item (добавляет ссылку-рисунок в массив)


При вызове данной функции пользователю надо будет ввести три параметра:

$title – альтернативный текст

$s_url – адрес, на который указывает ссылка

$image – путь к рисун

Таким образом, всю функцию можно описать следующей последовательностью действий:

определение конца массива

добавление в массив тега IMG с путем к рисунку заданным переменной $image и альтернативным текстом из переменной $title

добавление в массив переменной $s_url

После перевода алгоритма на язык PHP получим следующую функцию:

function add_img_item($title, $s_url, $image)

{

    $n=sizeof($this->link_and_text_list);

    if ($image!="")

    {

        $this->link_and_text_list[$n]['title']="<IMG SRC=".trim($image)." BORDER=0 ALT='".trim($title)."'>";

    }

    $this->link_and_text_list[$n]['url'].=" ".trim($s_url);

}


2.6 Функция gor_nav_create (создает горизонтальное меню навигации из массива)


Функция должна последовательно выводить все ссылки, введенные ранее в массив $link_and_text_list, через разделитель заданный в переменной $delitmer.

Реализация функции на языке PHP будет иметь следующий вид:

function gor_nav_create()

{

    $links_arr=$this->link_and_text_list;

    $str = "";

    $c=sizeof($links_arr);

    for ($i=0; $i<$c; $i++)

    {

        if (!$links_arr[$i]['url'])

        {

        $str .= $links_arr[$i]['title'];

        } else {

        $str .= "<a href=\"".$links_arr[$i]['url']."\" target=\"_self\">".$links_arr[$i]['title']."</a>";

        }

        if ($i<$c-1)

        {

        $str .= $this->delitmer;

        }

    }

return $str;

}


2.7 Функция vert_nav_create (создает вертикальное меню навигации из массива)


Функция должна последовательно выводить все ссылки, введенные ранее в массив $link_and_text_list с переходом на следующую строк

Реализация функции на языке PHP будет иметь следующий вид:


function vert_nav_create()

{

    $links_arr=$this->link_and_text_list;

    $str = "";

    $c=sizeof($links_arr);

    for ($i=0; $i<$c; $i++)

    {

        if (!$links_arr[$i]['url'])

        {

        $str .= $links_arr[$i]['title'];

        } else {

        $str .= "<a href=\"".$links_arr[$i]['url']."\" target=\"_self\">".$links_arr[$i]['title']."</a>"."<BR>";

        }

    }

return $str;

}


2.8 Функция title_create() (создает заголовок страницы)


Данная функция будет выводить в заголовок страницы часть массива, содержащую текст из ссылок (через разделитель).

Реализация функции на языке PHP будет иметь следующий вид:

function title_create()

{

    $links_arr = array_reverse($this->link_and_text_list);

    $str = "";

    $c = sizeof($links_arr);

    for ($i=0; $i<$c; $i++)

    {

        $str .= $links_arr[$i]['title'];

        if ($i<$c-1)

        {

        $str .= $this->delitmer;

        }

    }

return "<title>".$str."</title>";

}

}


2.9 Пример использования


Для того чтобы проиллюстрировать использование созданного нами класса введем следующий код PHP (результат его выполнения показан на Рис. 1) :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<HTML>

    <HEAD>

    <TITLE>ReFolder - О проекте</TITLE>

    </HEAD>

<BODY  bgcolor="#FFFFFF" text="#000000">

<TABLE BORDER=0 HEIGHT=100%>

   <TR>

      <TD HEIGHT=90 ALIGN = "center" VALIGN = "middle"><IMG SRC = "Logo.jpg"></TD>

      <TD ALIGN = "center" VALIGN="bottom">

<?php

$nav = new Url_nav(); // создание нового экземпляра класса

$nav -> l_visited_style("","","","");//изменение стиля посещенных ссылок

$nav -> l_hover_style("","","","");//изменение стиля ссылок при наведении

$nav -> l_link_style("","","","");// изменение стиля непосещенных ссылок

$nav -> delitmer = " < "; // установка разделителя


$nav -> add_item("О проекте", "index.htm");

$nav -> add_item("Рефераты", "referats.htm"); // добавление элементов

$nav -> add_item("Библиотека", "bibl.htm");

$nav -> add_item("Решения и ответы", "otveti.htm");

$nav -> add_item("Программы", "program.htm");


$nav -> delitmer = " > "; // изменение разделителя

echo $nav -> gor_nav_create(); // создание и вывод панели навигации со ссылками

echo("</TD>

   </TR>

   <TR>

      <TD VALIGN='top' ALIGN = 'left'>

              <IMG SRC = 'MenuLine.jpg'><BR>");

$nav2 = new Url_nav();

$nav2 = new Url_nav(); // создание нового экземпляра класса

$nav2 -> l_visited_style("","","","");//изменение стиля посещенных ссылок

$nav2 -> l_hover_style("","","","");//изменение стиля ссылок при наведении

$nav2 -> l_link_style("","","","");// изменение стиля непосещенных ссылок

$nav2 -> add_item("Бесплатное хранение файлов", "#"1.files/image001.jpg">

Рис. 1 – Результат выполнения кода


Заключение


Разработанный класс позволяет значительно упростить создание меню навигации сайта. Он сводит всю разработку к заданию элементов массива, разделителя и вызову методов класса.

Класс позволяет выводить меню навигации, как в виде строки, так и в виде столбца. Что еще больше расширяет функциональные возможности класса.

Таким образом можно сделать вывод о том, что поставленная задача была выполнена полностью. И ее итогом стал вполне жизнеспособный программный продукт, способный получить широкое применение у специалистов занимающихся разработкой Web – сайтов на языке PHP.


Список литературы


Кузнецов М.В., Симдянов И.В. Самоучитель PHP. – 2-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2006.

Уильман Л., Основы программирования на PHP: Пер с анг. –М.: ДМК Пресс, 2001.

Фленов М.Е., PHP Глазами хакера. – СПб.: БХВ-Петербург, 2005.

Кухарчик А., PHP: Обучение на примерах. – Мн.: Новое издание, 2004.


Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.