Php 如何构造一个用于多个客户端,但每个客户端都略有变化的应用程序?

Php 如何构造一个用于多个客户端,但每个客户端都略有变化的应用程序?,php,laravel,Php,Laravel,这就是交易 我们正在为同一服务器上的多个客户端构建一个应用程序。它基本上是同一个应用程序,但对于每一个客户端,我们的路由和控制台命令都有细微的变化,一些接口的不同实现,包括这些实现的单元测试,电子邮件的不同刀片视图,最后,每个客户端的前端javascript也略有不同 我们正在为如何合理地构建这一架构而努力 现在我们有了这个文件夹结构: /应用程序(这是主应用程序) /测试(主应用程序实现的所有测试) /客户 /first-client.com /应用程序 /测验 /资源 /second

这就是交易

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

我们正在为如何合理地构建这一架构而努力

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

  • /应用程序(这是主应用程序)
  • /测试(主应用程序实现的所有测试)
  • /客户
    • /first-client.com
      • /应用程序
      • /测验
      • /资源
    • /second-client.com
      • /应用程序
      • /测验
      • /资源
  • /公开的
    • /first-client.com/
    • /second-client.com/
所有特定于客户端的类都位于各自的命名空间中,分别为
FirstClient
SecondClient
。我们使用的是Laravel5.1,因此路由文件位于/clients/first-client.com/app/Http/routes.php等中

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

下面是我们正在处理的几个问题:

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

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

  • 你不必回答这些问题本身。我可以想象,越来越多的人尝试做类似的事情,也许你发现了一种完全不同的、更好的方式来组织这件事。如果是这样的话,我很想听听你是怎么做的