CodeIgniter控制器,如何避免重复代码?

时间:2011-02-19 20:11:54

标签: php codeigniter

每个页面都有动态侧边栏(列),例如最近的10篇文章。它显示标题中的列表。

我必须在控制器文件中的每个方法(操作)中重复相同的代码块。

例如:

<?php
class Blog extends CI_Controller {
    function index()
    {
        // Sidebar code block
            //some code for index
    }
}

class Signup extends CI_Controller {
    function index()
    {
        // Sidebar code block
            //some code for index
    }

    function login()
    {
        // Sidebar code block
            //some code for login
    }
}
?>

在视图文件夹中。我有一个侧边栏文件

必须有一种方法可以无效重复。

2 个答案:

答案 0 :(得分:3)

也许创建一个基类并将你的函数放入其中?

<?php
class BaseClass extends CI_Controller {
    function index()
    {
        // Sidebar code block
            //some code for index
    }

}

class Blog extends BaseClass { // Extend your classes from the base class
}

class Signup extends BaseClass {
    function login()
    {
        // Sidebar code block
            //some code for login
    }
}
?>

答案 1 :(得分:0)

如果在构造函数或其中一个配置文件中声明它会怎么样? http://codeigniter.com/user_guide/libraries/config.html