Leonid
PHP? нет, не слышал...
Перехожу на ООП. Проследите ход рассужений при его использовании
Перехожу на ООП. Проследите ход рассужений.
Ну, допустим создаю общий класс module, имеющий 3 функции для вывода навигации, заголовка и контента. Запишем это в файл module.php
Разбирая запрос в адресной строке, получаем, что необходимо подключить модуль, например catalog, имеющий те же 2 функции, для навигации и загловка и свою функцию для генерации контента. Файл с классом каталог запишем в файл catalog.php
index.php выглядит следующим образом:
Это все работает нормально и понятно. Но в модуле каталог есть свои исходные данные для заголовка, контента, навигации, причем они тоже как-то вычисляются.
Для этого ввожу (и в class module и class catalog) функцию
для вычисления этих исходных данных.
По этому index меняется таким образом:
Вопрос. Это правильно и грамотно, или есть более грамотные способы использования ООП.
Перехожу на ООП. Проследите ход рассужений.
Ну, допустим создаю общий класс module, имеющий 3 функции для вывода навигации, заголовка и контента. Запишем это в файл module.php
PHP:
<?php
Class module
{
function GetNav($data)
{
return “Navigation”;
}
function GetHeder($data)
{
return “Page Headder”;
}
function GetContent($data)
{
return “Page content”;
}
}
?>
PHP:
<?php
Class catalog extends module
{
function GetContent($data)
{
return “Catalog content”;
}
}
?>
PHP:
<?php
Include ‘module.php’;
//....
//Определяем исходные данные $data, например номер раздела.
//….
//Определяем, что подключить надо модуль catalog
Include ‘catalog.php’;
$mod = new catalog;
echo $mod->GetNav($data);
echo $mod->GetHeader($data);
echo $mod->GetContent($data);
?>
Для этого ввожу (и в class module и class catalog) функцию
PHP:
Function FirstData()
{
$data = .....;
return $data;
}
По этому index меняется таким образом:
PHP:
<?php
Include ‘module.php’;
//….
//Определяем, что подключить надо модуль catalog
Include ‘catalog.php’;
$mod = new catalog;
$data = $mod->FirstData();
echo $mod->GetNav($data);
echo $mod->GetHeader($data);
echo $mod->GetContent($data);
?>
