我正在努力想出一个基于每个客户可以配置相当标准的基于Web的应用程序的策略,因此我们可以多次销售它,而无需为每个客户编写额外的代码。这是一个LAMP堆栈(其中P是带有yii2的php)
我最初的想法是为每个客户提供一个JSON / YAML文件,并根据其中的内容打开/关闭功能。类似{hasAmazonApi:0,hasEbayApi:1}等等。
问题当然是代码中有很多if / else。
我的老板建议配置文件可用于实际控制部署时在服务器上部署的代码,编写脚本来编写代码 - 但这似乎充满了困难和危险。
这两种解决方案都不完美 - 有任何建议吗?
答案 0 :(得分:1)
我们主要通过两种方式解决这个问题:
当然还有其他方法。根据您的需求和您期望的角色数量,您可以选择一个对您感觉良好的角色。
答案 1 :(得分:0)
确实没有正确或错误的答案,但您的第一个选项可能更可取,只要您完全可以访问部署代码的位置,并且客户无权更改配置并选择加入他们的内容没有付钱。
警惕做部分部署是正确的。如果应用程序全部集成在一起并且配置决定了用户可以做什么,那么开发和测试应用程序会容易得多。您可能会遇到难以理解的问题,并且可能无法有效地重用代码。
如果功能可以分成这样的模块,Yii2模块可以适用于后一种方法。由于上述原因,我只会这样做作为最后的手段。从您的示例中可以看出,在任何情况下都是不可能的(eBay / Amazon凭证输入可能在同一个模块中,并且在UI中彼此并排)。