我想根据所访问的模块设置包含路径(以及其他路径,如视图脚本路径)。这样安全吗?如果没有,我怎样才能安全地动态设置包含路径?我正在做类似下面代码的事情(这是来自控制器插件。)
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) {
$modName = $request->getModuleName();
$modulePath = APP_PATH.'/modules/'.$modName.'/classes';
set_include_path(get_include_path().PATH_SEPARATOR.$modulePath);
}
答案 0 :(得分:0)
我不确定它是否安全,但这听起来不是最好的做法。如果有人输入了像../admin/
这样的模块名称怎么办?您应该在使用之前清理模块名称。
答案 1 :(得分:0)
只要您在使用它们之前清理变量就可以了,但效果不是很好。在运行时摆弄包含路径会导致严重的影响性能。
您是否尝试为每个模块加载模型/帮助程序?你应该看看Zend_Application
:
Zend_Application
为应用程序提供了一个引导工具,它提供了可重用的资源,基于通用和模块的引导类和依赖性检查。它还负责设置PHP环境,默认引入自动加载。
我的重点