Laravel 5可重用项目

时间:2016-03-31 12:59:05

标签: php git laravel laravel-5 package-development

在为项目构建一个软件包之后,我们意识到按照Laravel 5 package development clarity

执行我们需要实现的内容存在一些问题

也许我应该解释一下我的目标,有人可以提出一个指示。

我们已经构建了一个Laravel 5应用程序,现在需要“重复使用”。

我们必须修改Laravel并实现一个Eloquent类型的基本模型,因为我们的数据源实际上是C#Web服务。在调用数据库时,我们会拦截它并对SOAP进行“API”调用。

主要区别在于CSS,也许是一些JS&内容,但所有项目中的所有路线/控制器/模型将保持不变。大多数配置来自端点。

最初我们考虑为每个网站的样式创建多个资产存储库,并有一个基础仓库,这是包含的核心Laravel项目。这似乎变得非常复杂,因为我们不能仅仅因为分支和多个目录问题而在回购中拥有回购。

然后我们开始尝试将“核心”构建为Laravel包,但我们似乎经常遇到障碍。最新的问题包括包中的模型。对于要调用的模型,我们使用根项目config / composer来访问这些模型,而不仅仅是服务提供者。感觉包正在变得与项目配置紧密耦合。

有没有更好的方法来实现我们想要实现的目标?

编辑:

我忘记了1个回购中的多分支解决方案,但在功能开发方面难道不会变得难看吗?例如:

master (core with releases that get pulled into _site*)
dev (master dev)
feedback-form (eg. master branch feature)
_site1 (root site with releases)
_site1-dev (_site1 dev)
_site1-reskin (eg. _site1 feature)
_site2 (root site with releases)
_site3 (root site with releases)

这在开发人员手中留下了相当多的破坏性合并能力?带拉取请求的读取权限可能是解决方案吗?

1 个答案:

答案 0 :(得分:0)

所以在一些R& D之后,现在看来最好的解决方案是拥有1个具有多个分支的回购。开发人员具有读取权限,并让每个开发人员创建自己的分支。开发人员通过“上游”远程创建拉取请求并同步到父仓库,开发人员通过其他远程控制器同步彼此分叉。

似乎有点笨拙,但可能是“最干净”的选择。