[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как сделать по-нормальному функцию...
darkavenger
вобщем проблемы для меня очень актуальна. Я сделал класс для подключения представлений.

<?php

class
View {

public function getView($default_template, $content_template, $left_template, $meta, $rows, $rows_left, $menu) {

if (file_exists(ROOT_PATH.PATH_VIEWS.$content_template.'_view.php')) {
include ROOT_PATH.PATH_VIEWS.$default_template.'_view.php';
}
else {
exit(file_get_contents(ROOT_PATH.'/404.html'));
}
}

}


А вот класс контрллера рандомной страницы.

<?php

class
all_cat_Controller extends Controller {

function __construct($GET)
{
$this->view = new View();
$this->model = new all_cat_Model();
$this->model2 = new news_mini_Model($GET);
$this->model3 = new cat_Model($GET);
$this->model4 = new course_Model($GET);
}

public function action_index($meta, $GET) {

if (isset($GET['plvl1']) and $GET['plvl1']=='cat') {

if (isset($GET['plvl2']) and $GET['plvl2']=='course')
$this->full_course_view($meta, $GET);
else
$this->all_course_view($meta, $GET);

}
else
$this->all_cat_view($meta);

}

private function all_cat_view($meta, $menu=NULL) {

$rows_left=$this->model2->return_rows();
$rows=$this->model->return_rows();
$this->view->getView('default_template', 'all_cat', 'news_mini', $meta, $rows, $rows_left, $menu);

}

private function all_course_view($meta) {

$rows_left=$this->model2->return_rows();
$rows=$this->model3->return_rows();
$menu=$this->model3->return_menu();
$this->view->getView('default_template', 'cat', 'news_mini', $meta, $rows, $rows_left, $menu);

}

private function full_course_view($meta, $GET, $menu=NULL) {

$rows_left=$this->model2->return_rows();
$rows=$this->model4->return_rows($GET);
$this->view->getView('default_template', 'course', 'news_mini', $meta, $rows, $rows_left, $menu);

}

}


Прикол в том, что я из контроллера передаю в функцию getView как обязательные параметры, такие как default template, шаблон нужной страницы , шаблон левого блока, мета данные, так и не всегда нужные rows, menu и т.д , коих много может быть. То есть выходит, что если я перечисляю в getView все требуемые параметры, то и я должен их перечислить в каждом контроллере, хотя бы присвоив им NULL , иначе получается ругань, что не хватает параметров в вызванной функции. Как избавиться от этого, как логически перестроить представление?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.