为什么许多CMS对所有文章甚至模块文章都使用index.php?

发布于 2024-12-12 03:09:27 字数 131 浏览 0 评论 0原文

我想知道为什么许多 CMS(cmsms、wordpress、joomla 等)对所有模块中的所有文章都使用 index.php?它如何帮助他们?为什么他们不为每个模块或插件使用单独的 php 文件?我想设计一个小型 CMS 并且想了解这项技术。谢谢

I wonder why many CMSs (cmsms, wordpress,joomla and ...) use index.php for all articles in all modules? how it can help them? why they don't use separate php files for each module or plugin? I wanna design a small CMS and wanna know this technik. thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绮筵 2024-12-19 03:09:27

为什么他们不为每个模块或插件使用单独的 php 文件?

他们承担不起这样做的代价。 CMS 的机制也允许第三方插件,但他们无法事先创建单独的页面,无论如何这都会是一种开销。

CMS 通常所做的是通过 URL 传输请求并实现设计模式,例如:

这有助于他们保持简单并能够找出要加载的类和要调用的函数。如果有内部或第三方插件,同样会很容易。

您应该研究这些模式,以便自己找出问题所在。

这是前端控制器的引用:

前端控制器可以实现为Java对象,或者实现为
使用 PHP、ASP、CFML 或 JSP 等脚本语言编写的脚本,称为
针对网络会话的每个请求。该脚本例如
index.php,将处理应用程序常见的所有任务
或框架,例如会话处理、缓存和输入
过滤。然后根据具体请求实例化
更多对象并调用方法来处理特定任务
必填。

前端控制器的替代方案是单独的脚本,例如
login.php 和 order.php 各自满足以下类型
要求。每个脚本都必须复制代码或对象
所有任务通用。但每个脚本也可能具有更大的灵活性
执行所需的特定任务。

why they don't use separate php files for each module or plugin?

They can't afford to do so. The CMS's machanism allows third party plugins as well for which they can't create separate pages beforehand and that will be an overhead anyway.

What CMSs typically do is transter requests through URL and implement design patterns such as:

This helps them keep simple and be able to figure out which classes to load and functions to call. Same goes easy in case there is a plugin in-house or third party.

You should study those patterns to figure out the things for yourself.

Here is quote from Front Controller:

The front controller may be implemented as a Java object, or as a
script in a script language like PHP, ASP, CFML or JSP that is called
on every request of a web session. This script, for example an
index.php, would handle all tasks that are common to the application
or the framework, such as session handling, caching, and input
filtering. Based on the specific request it would then instantiate
further objects and call methods to handle the particular task(s)
required.

The alternative to a front controller would be individual scripts like
login.php and order.php that would each then satisfy the type of
request. Each script would have to duplicate code or objects that are
common to all tasks. But each script might also have more flexibility
to implement the particular task required.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文