избыточная реализация в контроллере CI - PullRequest
0 голосов
/ 20 декабря 2009

Я хочу спросить вас о лучших методах работы на главной странице блога. Я хочу создать приложение для блога, используя каркас CodeIgniter. У меня есть 2 типа страниц (первая страница и страница администратора)

Предположим, у меня есть несколько контроллеров на главной странице (главная страница, запись, страница и ссылка). По умолчанию у меня есть средство просмотра для всех этих контроллеров: header.php, footer.php, sidebar.php.

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

__construct () {
//data['categories'] = CategoryModel->getlist
//data['recent_posts] = PostModel->get_recent_post
//etc

Можете ли вы предложить мне, где я должен разместить этот метод, чтобы я не должен реализовывать этот метод во всех контроллерах.

Спасибо

Ответы [ 2 ]

2 голосов
/ 20 декабря 2009

Вы можете написать базовый контроллер, который другие наследуют от

class AppStartup extends Controller {

    function __construct() {
        // whatever you need
    }

}

тогда

class Home extends AppStartup {

    // ....

}

Также вы можете начать принимать некоторые ответы, данные вам, или люди не будут так рады помочь вам.

1 голос
/ 20 декабря 2009

Лучший способ сделать это - создать MY_Controller и использовать $ this-> data вместо $ data. Это означает, что все ваши контроллеры будут запускаться из MY_Controller (если вы явно указали своим контроллерам наследовать от него).

http://codeigniter.com/wiki/MY_Controller_-_how_to_extend_the_CI_Controller/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...