所以这就是这笔交易。
我们正在为同一台服务器上的多个客户端构建应用。它基本上是相同的应用程序,但对于每个客户端,我们在路由和控制台命令方面略有不同,一些接口的不同实现,包括这些实现的单元测试,我们的电子邮件的不同刀片视图,最后我们略有不同每个客户端的前端javascript。
我们正在努力解决如何正确构建这个问题。
现在我们有了这个文件夹结构:
所有特定于客户端的类分别位于其自己的命名空间FirstClient
和SecondClient
中。我们正在使用Laravel 5.1,因此路由文件位于/clients/first-client.com/app/Http/routes.php等。
我们将公共文件夹保留在/clients
文件夹之外,因为前端是一个完全独立的大角度存储库。
现在我们处理一些问题:
现在我们以一种丑陋的方式引导应用程序。在/public/first-client.com/index.php
中,我们定义了一个常量来保存我们开始的客户端。然后在/bootstrap/app.php
中我们使用单例类(使用前面定义的常量)来查找正确的客户端特定的内核类。所有对全局常量和全局单例的使用都吓坏了我。
当客户特定测试想要模拟HTTP请求时,我们如何确保使用正确的客户端环境和路由等运行它?
您本身不必回答这些问题。我可以想象更多的人试图做这样的事情,也许你找到了一种完全不同的,更好的结构化方法。如果是这样,那么我很想听听你是怎么做到的。