有没有办法在php.info(或其他配置文件)中指示每次调用PHP时都要运行的脚本?
我感兴趣的是将特定页面的HTTP请求映射到表示该页面的Controller类,类似于许多MVC框架(如CI)的工作方式。
例如,用户单击应该映射到/webroot/some/url/widget.php的链接,而是/webroot/app/mvc/controllers/WidgetController.php类是调用的。
要做到这一点,我认为像CI这样的MVC框架已经找到了一种方法来通过运行运行的脚本“挂钩”PHP运行时并说“哦,请求是针对widget.php,但我们想要实际运行WidgetController.php对象。“
任何想法/想法/建议/顾虑?
谢谢!
答案 0 :(得分:1)
我认为你可能在这里走错路。 Zend Framework和其他框架我知道使用mod_rewrite或类似技术重定向请求,然后由某种Front Controller处理。
这意味着您对example.org/mypage的请求被Apache(而不是PHP)重定向到myfrontcontroller.php,然后myfrontcontroller.php决定如何处理传入的请求。
答案 1 :(得分:1)
您正在寻找的是 php.ini 选项auto_prepend_file
。
答案 2 :(得分:0)
你需要一个路由器,以及apache mod_rewrite或同等产品。您设置mod_rewrite将所有请求发送到单个文件,例如/index.php。然后路由器查看请求URL并确定要加载哪个控制器文件以及调用哪个方法。几乎任何MVC框架都内置了这个功能,它们的工作方式基本相同。
答案 3 :(得分:0)
webroot中的index.php
应该足够,路径将作为服务器变量PATH_INFO
传递。
答案 4 :(得分:0)
请参阅http://us3.php.net/manual/en/ini.core.php#ini.auto-prepend-file
编辑:我的回答仅仅是一个FYI。正如其他人所提到的,mod_rewrite是解决问题的可接受方式。