自动加载两个类和&楷模

时间:2013-01-02 06:45:05

标签: php autoloader

我知道在使用MVC框架时自动加载控制器是很常见的做法。我已经制作了自己的迷你框架,控制器可以自动加载。

使用相同的自动加载功能加载模型是否存在任何安全/不良问题?

function __autoload($className) { // Autoload both controllers and models.
if(stristr($className, 'Model'))
{
    if (is_readable(Ms . $className . '.php')) {
        include Ms . $className . '.php';
    }
} else {
    if (is_readable(Cs . $className . '.php')) {
        include Cs . $className . '.php';
    }
}
}

1 个答案:

答案 0 :(得分:0)

您可以使用命名空间和spl_autoload_register()来获得这样的自动加载器。关于多自动加载器(多类类的自动加载器)而不是仅控制器自动加载器没有特定的安全问题。

我通常使用名称空间,如:

$home = new controller\home;
$home->actionIndex();

$users = new model\users;

$post = new view\post;

从那里可以很容易地用\替换类名中的/来获取文件的特定路径(显然一如既往地进行必要的安全检查)。