我知道在使用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';
}
}
}
答案 0 :(得分:0)
您可以使用命名空间和spl_autoload_register()
来获得这样的自动加载器。关于多自动加载器(多类类的自动加载器)而不是仅控制器自动加载器没有特定的安全问题。
我通常使用名称空间,如:
$home = new controller\home;
$home->actionIndex();
$users = new model\users;
$post = new view\post;
从那里可以很容易地用\
替换类名中的/
来获取文件的特定路径(显然一如既往地进行必要的安全检查)。