【发布时间】:2011-09-04 12:53:32
【问题描述】:
我开始在一个主要是博客的个人网站上工作,其中包含各种技术项目的部分,小到自定义照片库,大到餐厅评论网络应用程序。之前没有使用过 WordPress 或 Kohana,我很好奇将 WP 集成到 Kohana(或任何其他框架,就此而言)有什么优势,在这种情况下反之亦然。
我在网上看到过这里和那里提到的一些内容,但没有明确的帖子比较这两种方法,所以我希望其他人可以在这里发表意见:)
【问题讨论】:
我开始在一个主要是博客的个人网站上工作,其中包含各种技术项目的部分,小到自定义照片库,大到餐厅评论网络应用程序。之前没有使用过 WordPress 或 Kohana,我很好奇将 WP 集成到 Kohana(或任何其他框架,就此而言)有什么优势,在这种情况下反之亦然。
我在网上看到过这里和那里提到的一些内容,但没有明确的帖子比较这两种方法,所以我希望其他人可以在这里发表意见:)
【问题讨论】:
我以前没用过这个,但是 kerkness 已经为它写了一个插件:https://github.com/kerkness/kohana-for-wordpress 但是,它已经很老了,所以你可能想寻找更新的东西。
【讨论】:
将 Wordpress 与框架(如 Kohana、CodeIgniter、Zend 等)集成往往没有解决第一个也是最重要的问题:您希望将两者在功能级别集成多远?
一般来说,有两种高级方法可以集成任何两个 PHP 产品:
1) 在 PHP 代码中,将两个产品中的库、引导脚本等包含到一个或多个脚本中(创建一个“混合”)。
作为开发人员,您应该能够在生成的混合中使用这两种产品的大部分功能。例如,对于 Wordpress 和 Kohana,完整的结果将允许您使用 Kohana 功能(例如,路由、身份验证等)和 Wordpress 功能(例如,获取帖子内容、作者等)。
这种方法的困难在于竞争的 API 和代码期望可能使混合行为出现意外,例如,
在尝试此过程时,我要解决的第一个问题是路由,我是否要将在 Kohana 中获取帖子、附件等委托给 Wordpress,或者我是否必须在 Kohana 之间建立一个接口路由器、控制器和 Wordpress?
虽然此选项很有吸引力,因为您可以访问两种产品 API,但您必须准备好对应用程序行为进行重大更改,以使两种产品和平共存。如果这听起来工作量很大,那是因为工作量很大!
2) 使用网络服务器智能地将请求路由到不同的产品。
根据您的问题,听起来您希望网站的某些部分加载不一定需要上述集成级别的 Web 应用程序(例如,您真的需要在评论应用程序中获取 Wordpress API,还是照片库?)。如果您只是在寻找一种使用同一应用程序域加载两个应用程序的方法,则此选项会更适合,因为您不需要在两者之间执行太多(如果有的话)集成。
假设您使用的是 nginx 或 Apache Httpd 之类的网络服务器,您应该能够为网站的不同部分为不同的应用程序创建别名。
例如,
http://myblog.nonex/ - 指向 Wordpress 安装,该安装反过来管理默认站点(显示页面、博客文章等均来自 Wordpress)。
http://myblog.nonex/apps/review - 指向审核应用程序,即 Kohana 安装。
http://myblog.nonex/apps/gallery - 指向图库应用程序,它(通过适当的模块化)可以与审查应用程序一起存在于同一个 Kohana 安装中。
由于您仍处于规划和开发阶段,我建议您首先选择选项 2) - 构建原型,确定您绝对需要 Kohana 中 Wordpress 功能的任何区域(例如,评论或图库应用程序)需要使用 Wordpress 用户凭据吗?)并在创建完全混合之前查看执行最低限度的集成。
【讨论】: