如何在Laravel 4中构建一个带有子应用程序的平台


How to structure a platform with sub apps in Laravel 4?

我需要开发几个具有共同功能和流程的网站,唯一会发生巨大变化的是CSS,甚至HTML也将是共同的。

我在Laravel 4中组装这个结构时遇到了麻烦,因为我仍然是框架的初学者。

  • 我需要有一个"超级项目",所有的"子项目"将继承。
  • 我需要能够在特定的"子项目"中实现自定义功能和流程。
  • 我需要在它自己的GIT存储库中分离每个项目。

我很想听听已经创造了这种结构的人的意见。

提前感谢!

你可以使用包功能,首先你需要做一个内核包作为你的基本项目,然后从你的git仓库扩展'子项目',这是很简单的方法,正如Laravel介绍所说:

"包可以是任何东西,从像Carbon这样处理日期的好方法,或者像behaat这样的整个BDD测试框架。"

使用包,您可以在composer.json上挑选出每个功能并逐个加载它们。

假设需要单独的Git仓库,一种方法可能是为每个项目添加一个"app"文件夹,为主项目添加一个文件夹。例如:

  • 应用
  • Subapp1
  • Subapp2

然后你需要添加一个自动加载器来检查给定的文件是否存在于子应用程序文件夹中。如果没有,那么从app文件夹加载。这样你可以集中应用程序文件,也可以创建自定义的其他文件,或者通过子应用程序文件夹覆盖应用程序文件。然后,每个子app文件夹可以是一个单独的Git repo,而不包括子app文件夹的根文件夹是主repo。

配置和路由将通过主应用处理。

你还可以添加名称空间或类似的文件夹结尾结构来更详细地控制子应用程序自定义的功能,而不必从应用程序重写整个控制器或模型。