如何构建用于多个客户端的应用程序,但每个客户端的应用程序略有不同?

时间:2017-04-18 09:43:06

标签: php laravel

所以这就是这笔交易。

我们正在为同一台服务器上的多个客户端构建应用。它基本上是相同的应用程序,但对于每个客户端,我们在路由和控制台命令方面略有不同,一些接口的不同实现,包括这些实现的单元测试,我们的电子邮件的不同刀片视图,最后我们略有不同每个客户端的前端javascript。

我们正在努力解决如何正确构建这个问题。

现在我们有了这个文件夹结构:

  • / app(这是主要应用)
  • / tests(主要应用程序的所有测试)
  • /客户端
    • /first-client.com
      • /应用
      • /测试
      • /资源
    • /second-client.com
      • /应用
      • /测试
      • /资源
  • /公共
    • /first-client.com /
    • /second-client.com /

所有特定于客户端的类分别位于其自己的命名空间FirstClientSecondClient中。我们正在使用Laravel 5.1,因此路由文件位于/clients/first-client.com/app/Http/routes.php等。

我们将公共文件夹保留在/clients文件夹之外,因为前端是一个完全独立的大角度存储库。

现在我们处理一些问题:

  1. 现在我们以一种丑陋的方式引导应用程序。在/public/first-client.com/index.php中,我们定义了一个常量来保存我们开始的客户端。然后在/bootstrap/app.php中我们使用单例类(使用前面定义的常量)来查找正确的客户端特定的内核类。所有对全局常量和全局单例的使用都吓坏了我。

  2. 当客户特定测试想要模拟HTTP请求时,我们如何确保使用正确的客户端环境和路由等运行它?

  3. 您本身不必回答这些问题。我可以想象更多的人试图做这样的事情,也许你找到了一种完全不同的,更好的结构化方法。如果是这样,那么我很想听听你是怎么做到的。

0 个答案:

没有答案