桥接两个大型PHP框架的最佳方法

时间:2010-10-11 16:24:37

标签: php frameworks

我已经制作了几个php脚本作为一个大型框架的插件。我的脚本经常使用它的库。现在有人正在使用另一个平台,有自己的库等等(可能和我使用的框架一样强大)想要在我的脚本中调用函数。

使我的脚本可以从另一个框架调用的最佳方法是什么?

  • 另一个人只是包含()他需要的脚本文件,所以我的脚本调用我的框架库,也意味着两个框架都需要安装在同一台服务器上
  • 我通过Web服务调用我的函数(可能会导致速度损失,但可能会分离框架)
  • 将我的功能改写为他的框架......

有人根据他们所做的尝试得出一个意见,例如,当其中一个平台决定升级时哪个是最好的解决方案?

干杯!

4 个答案:

答案 0 :(得分:2)

从性能,可维护性和可读性的角度来看,最好选择一个“框架”并坚持下去(针对应用程序)。我把框架放在引号中,因为我也在一组库的上下文中使用它。

您的每个解决方案都可以使用,但我认为如果是单个应用程序,最好的解决方案是#3。如果它们是离散的应用程序(#松散地将应用程序彼此耦合),它将更好地工作。

就个人而言,我建议为应用程序选择一个框架并坚持使用它。所以#3将是我的建议(不知道它们是否是单独的应用程序).​​.....

答案 1 :(得分:1)

为了使您的代码可以跨框架移植,您可以编写一个额外的抽象层 - 框架层。然后,您为每个支持的框架添加一个包含。可以通过检测框架在运行时确定包含哪个文件。无论你在底层框架中调用一个函数,都要调用自己的函数,然后这个函数调用框架中的相应函数。

您可以将其开发为接口,并为实现此目的的每个框架创建一个类。

答案 2 :(得分:1)

假设您愿意让他们完全访问您的库(默认情况下通常不是全局可读的),您将要求他们加载并使用两个框架的所有开销,这可能是一个真正的性能杀手。就像加载Jquery和Prototype一样,你可以做到,但它并不是非常聪明。

使用webservices路由可以解决您的安全问题,将这两个框架分开,将您打开以供将来使用(无论其框架/平台如何),并且可能会节省时间。

答案 3 :(得分:1)

@ircmaxell提出了一个很好的观点,但是我会扩展它,如果你这样做,并且你有PHP 5.3的奢侈,在框架之间使用带有任何扩展或代理代码的命名空间。