我喜欢Java servlet的一个方面是使用不显眼的过滤器和拦截器。基本上,您可以使用这些东西来强制执行安全性,在HttpRequest
上添加额外信息,进行监控等等。
PHP中有一些等价物吗?
从我到目前为止看来,您似乎倾向于在所有页面中包含某个文件,这些文件将执行诸如启动会话,强制执行安全性等操作。不那么优雅。这是唯一的解决方案吗?
答案 0 :(得分:5)
PHP没有提供任何servlet API等效,所以快速回答是你需要自己实现逻辑。
你有很多关于如何实现这一点的肘部空间。实践是在应用程序中创建一个特定的控制流,方法是从一个文件开始,通过该文件初始化所有请求,初始化一些值,例如常量,文件路径等,然后开始解析请求并生成请求的内容。
显然,设置一些主文件并解析请求非常快。在过去,我们有“一个.php文件来统治他们所有”的做法。您通常只有一个包含页眉,页脚的文件,并且根据一些传入的GET或POST参数,您还会包含一些可生成或显示内容的其他页面。你可以很容易地理解事情会变得多么糟糕!
我的建议是,在你开始尝试自己开发之前,先尝试一些现有的框架,然后尽快开始提高工作效率。我认为PHP不是您的主要专业知识,并且您正在购买一个框架,您可以快速启动并运行,并快速掌握它的完整范围。其中两个,CodeIgniter和CakePHP,作为PHP的框架,因为WordPress是博客 - 功能,简单和有效。
如果框架不符合您的喜好,您一定要阅读The no-framework PHP MVC framework。
答案 1 :(得分:2)
不过,可能是近距离通话。
有一个配置指令来指示php自动包含你的文件
auto_prepend_file string
这对写一些类似的东西很有用。
你应该仔细阅读自php 5.2(最新版本)以来嵌入的过滤器库 http://it.php.net/manual/en/filter.configuration.php。我已经没用过了,但看起来很有趣。
顺便提一下,框架提示是一个有价值的提示。 虽然我不喜欢它们(通常我会打架而不是我指定的问题)。