可以在WordPress中切换数据层吗?

时间:2010-08-24 作者:Marek

毫无疑问,WordPress可以使用插件进行定制,但每一种定制的可能性都会受到底层架构的限制。

对于熟悉WP体系结构和源代码的人员:

要定制WP使用的数据层以使用另一个数据存储(例如文件(或另一个数据库系统)而不是MySQL),需要做什么工作。WordPress架构的分层是否意味着可以切换层?UI层显然很容易切换(任何主题都可以做到这一点),但是其他层,即数据层呢?

3 个回复
最合适的回答,由SO网友:hakre 整理而成

Wordpress是not 设计为具有可替换的数据库层。计算机科学有一些不同的概念,在同一个应用程序中,在不同的抽象层次上处理不同的数据库,Wordpress不倾向于使用这些概念。用更简单的话来说:一点也不。

但是wordpress提供了用其他代码替换自己代码的能力,例如整个数据库类。这并不总是(读:通常)足以取代整个数据库层,但有助于修补。WPDB类替换HyperDB 例如,没有完全添加新的数据库层,而是处理多个MySQL服务器,而不是一个MySQL服务器,这是一个众所周知的示例(这被认为是使用PHP的错误做法,there are better ways, 但这是一个很好的例子。

除了替换数据库类之外,Wordpress还具有这样一种能力,即可以替换更多的代码,并且您可以对其进行完全更改,例如,创建一个自己的发行版,该发行版可以自行处理与数据库层有关的一切。

如果您想了解如何替换整个数据库层的真实示例,以便让wordpress使用完全不同类型的数据库服务器(此处:MSSQL而不是硬编码的MySQL),您可以在此处找到完整的发行版和补丁:

WordPress on SQL Server Distro & Patch

这是一款免费软件,您可以研究如何实现这样的数据库层,该网站还提供了有关该主题的更多信息。

小贴士:不要与Wordpress对抗。坚持使用MySQL,就是这样。否则,寻找其他更好的设计,以满足您的需求。只需使用合适的工具即可。

SO网友:Annika Backstrom

有可能:查看HyperDB 取代wpdb. HyperDB将分区和复制添加到WordPress中。分区通过连接到多个数据库并使用表名来确定哪个数据库应该运行查询来工作。

最后$wpdb 只需获取一个SQL查询,就可以自由地对该查询中的数据执行所需的操作。HyperDB像原始数据库一样查询MySQLwpdb 班将其扩展到不同的数据库需要在执行任何不符合要求的查询之前对其进行修改。如果您的数据存储根本不接受SQL,则必须将传入的查询转换为您正在使用的任何其他API。只要有足够的时间和努力,任何事情都是可能的,但对我来说,这听起来是一项相当痛苦的任务

SO网友:Marek

刚找到this Codex page 总结得很好,包括WordPress开发人员提出和/或计划的解决方案概述。让我们看看结果如何。

结束

相关推荐