【发布时间】:2008-12-28 01:06:50
【问题描述】:
我喜欢 Java servlet 的一件事是使用不显眼的过滤器和拦截器。基本上你可以使用这些东西来加强安全性,在HttpRequest 上添加额外的信息,进行监控等等。
PHP 中是否有一些等价物?
从我目前看到的情况来看,您似乎倾向于在所有页面中包含某个文件,该文件将执行诸如启动会话、实施安全性等操作。不那么优雅。这是唯一的解决方案吗?
【问题讨论】:
我喜欢 Java servlet 的一件事是使用不显眼的过滤器和拦截器。基本上你可以使用这些东西来加强安全性,在HttpRequest 上添加额外的信息,进行监控等等。
PHP 中是否有一些等价物?
从我目前看到的情况来看,您似乎倾向于在所有页面中包含某个文件,该文件将执行诸如启动会话、实施安全性等操作。不那么优雅。这是唯一的解决方案吗?
【问题讨论】:
PHP 没有提供任何等效的 servlet API,因此快速回答是您需要自己实现逻辑。
对于如何实现这一点,您有很多余地。实践是在你的应用程序中创建一个特定的控制流,从一个文件开始,所有请求都通过该文件进行初始处理,该文件将初始化一些值,例如常量、文件路径等,之后你开始解析请求并生成请求的内容。
显然,设置一些主文件并解析请求非常快。过去,我们最大限度地采用了“一个 .php 文件来统治它们”的做法。您通常会有一个包含页眉、页脚的文件,并且基于一些传入的 GET 或 POST 参数,您还会包含一些其他页面,这些页面会生成或显示内容。您可以轻松理解事情会变得多么混乱!
我的建议是,在你开始尝试自己开发一些东西之前,先尝试一些已经存在的现有框架,并尽快开始发挥作用。我假设 PHP 不是您的主要专业知识,并且您正在购买一个可以快速启动和运行并快速掌握其完整范围的框架。其中两个,CodeIgniter 和 CakePHP,是 PHP 的框架,就像 WordPress 是博客的框架一样——功能强大、简单有效。
如果框架不符合您的喜好,您绝对应该阅读The no-framework PHP MVC framework。
【讨论】:
不,但也许是一个接近的电话。
有一个配置指令可以指示 php 在你的文件中自动包含一个文件
auto_prepend_file string
这对于编写类似的东西很有用。
您应该仔细阅读自 php 5.2(可用的最后一个版本)以来嵌入的过滤器库。
http://it.php.net/manual/en/filter.configuration.php。我还没用过,但看起来很有趣。
顺便说一下,框架提示很有价值。 虽然我不喜欢它们(通常我必须与框架而不是我分配的问题作斗争)。
【讨论】: