Наследование класса для Smarty

StalkerClasses

Новичок
Добрый день.

Для каждой страницы можно выбрать класс который будет запускаться,
например page->main()
или pageCompany-main()

Насолько правильна моя идея в ниже представленном коде, что расширяя основной класс page, в нем есть вызываемая функция render, в которую можно дописать, что угодно и + еще изменить настройки самого шаблонизатора?

PHP:
<?php



    // обычная страница
class page {

    function main($config) {
        global $smarty;
     
        $this->smarty = new smarty;
        $this->setDefOption();
        $this->assignDefaultVarible();
     
        $this->render($config);
     
        $content = $smarty->display( $config['template_file'] );
        return $content;
    }
 
        // Функция вывода результата
    function render($conf){
        global $smarty;

     
    }
 
 
        // Функция определения дефолтовых установок
    function setDefOption(){
        global $smarty;

        $smarty->cache_lifetime = 0;
        $smarty->debugging = 0;
        $smarty->caching = 0;
        $smarty->plugins_dir[] =
     
        /*... и еще ряд настроек */
    }
 
        // Производим assign дефолтовых данных всегда
    function assignDefVar(){
        global $smarty;
     
            $smarty->assign('pageId', /*SELECT ... */);
            $smarty->assign('pageTitle', /*SELECT ... */);
            $smarty->assign('pageText', /*SELECT ... */);
         
    }
 
}


    // для страницы о компании до извлекаем доп. данные.
class pageCompany extends page {
    function render($conf){
        global $smarty;
     
            $res = mysql_query("SELECT * FROM persone");
            while () {
                //
            }
            $smarty->assign('personeList', $array);
         
     
    }
}

[/ PHP ]




И как лучше делать?
PHP:
global $smarty;

или

$this->smarty
 
Последнее редактирование:

StalkerClasses

Новичок
Мужик, ты с какого дерева слез? Почитай что такое "наследование" в ООП, если в школе недоучили.
А потом иди штудировать http://ru2.php.net/manual/en/language.oop5.php
И как лучше сделать?

А что Вас в данном коде не устраивает с точки зрения наследования?
Создавая новую страницу я пишу:

PHP:
class pageNews extends page {

function render(){
  /// 1. делаю выборку из БД таблицы новостей,
  /// 2. делаю assign данных в шаблон

}



}



pageNews->main();
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Меня всё устаивает. В вашем коде нет наследования вообще.
 
Сверху