【发布时间】:2015-06-12 06:00:42
【问题描述】:
背景:
我目前有一个基于 MVC Kohana PHP 框架的 Web 应用程序,它允许用户向他们的客户销售电子书。
Web 应用程序背后的代码全部连接在一起,除了以 API 为中心之外的所有内容。 它运行纯 MVC,然后使用 mustache 作为模板系统。
我想做的事:
我想整合各种会计服务(来自更大的北欧供应商,如 e-conomic.com),但我也想自己的整合,让用户优化他们的销售等等。
我想要做的是制作一些东西,称之为引擎,它允许将功能集成(灵活)到 web 应用程序的各个部分,无论是在视图部分还是控制器/逻辑中。
从背景和技术角度来看,有哪些方法可以做到这一点?
我的想法是,我需要在 web 应用程序的不同区域使用某种占位符。然后我需要这些占位符与“引擎”一起工作,然后检查集成是否要在这些区域“运行”?
这还能用吗?你会怎么做?
更新试图使其更清晰:
所以我想要完成的是拥有可以集成到现有主 web 应用程序中的单独功能。
假设我有一个名为 integrations/ 的文件夹,其中有两个不同的集成会影响系统的不同部分。
第一个是 Kashflow(会计软件)集成,它从我们的系统中获取一些数据并发送到 Kashflow(API 方式,很好)但也在我的 web 应用程序中的“订单”下说明它是否已同步到 Kashflow还是没有。(这是问题的一部分)
另一个集成可能是“精选电子书”集成。这只是让您选择应该展示的产品,然后在电子书商店上,特色产品将突出显示,周围有橙色边框和一些更大的文字。(这是问题所在的部分)
粗体标记是如何工作的?像 Shopify 这样的网店供应商有可以做到这一点的应用程序,而所有其他带有应用程序的 SaaS 都有这种技术解决方案。
我想知道是吗?如何允许单独的功能影响基础 web 应用?
我希望现在更清楚了。
新的更新:
我要寻找的答案是基于上述背景的答案,我如何实施一个解决方案,从我现在的位置实现这一点。
一个好的答案是,也可以以文本/伪方式描述我提到的示例插件/集成之一是如何实现的。
那么集成如何与主应用程序通信,主应用程序有什么来接受/允许功能。
【问题讨论】:
-
您能否详细说明集成。您需要将您的功能暴露给其他服务,对吗?您想公开数据以供读取/写入,还是希望客户端能够在其页面中嵌入部分视图?
-
请检查我更新的问题,我希望我回答了你的意见
标签: php model-view-controller architecture kohana