与不同UI共享代码库


Shared codebase with different UIs

我们正在尝试运行几个共享大约90%代码的站点。业务域是相同的,但它们的UI有点不同。因此,它们将具有不同的CSS。

您将如何管理代码库以共享需要它的代码?

的两种通用方法

  • 将共享零件构造为Composer包

例如,所有应用程序级代码,如路由器、依赖项管理、验证、域实体映射,都可以通过Packagist作为Composer依赖项进行管理。如果代码不是开源的,可以使用私有repo作为依赖项。

然后,您将为每个站点创建不同的repo,并使用Composer构建相同的部分,只对实际不同的部分进行编码。您可能有两个服务器,用于不同的域。

这意味着通过Composer和代码进行更多配置。

回购1/应用程序/查看特定于一/公众/cssSpecificToOne/jsSpecificToOneindex.php/供应商/[通过composer安装的依赖项]回购2/应用程序/视图特定于两个/公众/css指定为两个/jsSpecificToTwoindex.php/供应商/[通过composer安装的依赖项]
  • 管理同一回购中的所有站点

这与其他解决方案接近,但您可以将不同的路由发送到不同的前端控制器,这些控制器将使用相同的域映射器、验证、路由器等,但有两个不同的视图层,它们将具有特定的代码。

这意味着服务器要进行更多的配置,为两个公共转发中的每个域提供服务。

回购/应用程序/视图1/查看LogicSpecificToOne/视图2/查看LogicSpecificToTwo/public1/cssSpecificToOne/jsSpecificToOneindex.php/public2/css指定为两个/jsSpecificToTwoindex.php/lib/sharedPackages