使用单个 Laravel 代码库管理多个网站
Managing Multiple Websites with a Single Laravel Codebase
我的团队最近整合了一个适用于多个网站的 Laravel 代码库。目前我们 运行 将它们作为安装在 centOS7 配置文件上的应用程序。
每当需要一个新站点时,我们都会启动一个配置文件,然后将代码克隆进去。代码库在很大程度上依赖于包(自定义 laravel 包)。目前每个站点都引入了我们开发的所有包。目前的区别是 1) .env 文件。和 2) 主题配置文件(来自一个包,我稍后会谈到)。
我希望能够根据需要提取包,我不想提取我们开发的每个包。我的问题是,有没有办法绕过每个包裹?我正在考虑从 git 中删除 composer.json 文件并将其视为配置文件?我还考虑过生成 composer.json 文件。
最终我们想将 CI/CD 添加到流程中并真正实现自动化。我真的很努力将代码库保存在一个存储库中。我错了吗?我们是否应该将代码库拆分,每个项目一个存储库?但是你必须考虑更新成为一场噩梦。
目前,主题是作为包引入的。每个站点都有 composer 文件中的所有主题。该应用程序具有可以登录并将主题设置为活动的管理员用户。尽管如此,我还是希望它只引入必要的主题资源。
抱歉,我有点啰嗦,但我想知道如何正确扩展应用程序。
非常感谢!
tldr;我如何 运行 使用一个代码库的多个网站,同时能够指定不同的所需自定义包?
我还没有实际测试过这个,但你可以通过定义多个 composer.json
文件来完成你想要的。阅读有关定义
的更多信息
然后,在每个composer.json
文件中定义一个different vendor directory。 示例:
{
"config": {
"vendor-dir": "plugins"
}
}
接下来,在每次安装时指定要安装的 composer.json
文件,来自文档:
By setting the COMPOSER env variable it is possible to set the filename of composer.json to something else.
来自文档的示例:
COMPOSER=composer-other.json php composer.phar install
在 specifying the environment 上阅读更多内容。
最后但同样重要的是,您必须 bootstrap 您的网站或应用程序的特定供应商目录:
require __DIR__.'/../custom-vendor-directory/autoload.php';
这可以在您的应用程序的 index.php
文件中自定义。 original source.
我的团队最近整合了一个适用于多个网站的 Laravel 代码库。目前我们 运行 将它们作为安装在 centOS7 配置文件上的应用程序。
每当需要一个新站点时,我们都会启动一个配置文件,然后将代码克隆进去。代码库在很大程度上依赖于包(自定义 laravel 包)。目前每个站点都引入了我们开发的所有包。目前的区别是 1) .env 文件。和 2) 主题配置文件(来自一个包,我稍后会谈到)。
我希望能够根据需要提取包,我不想提取我们开发的每个包。我的问题是,有没有办法绕过每个包裹?我正在考虑从 git 中删除 composer.json 文件并将其视为配置文件?我还考虑过生成 composer.json 文件。
最终我们想将 CI/CD 添加到流程中并真正实现自动化。我真的很努力将代码库保存在一个存储库中。我错了吗?我们是否应该将代码库拆分,每个项目一个存储库?但是你必须考虑更新成为一场噩梦。
目前,主题是作为包引入的。每个站点都有 composer 文件中的所有主题。该应用程序具有可以登录并将主题设置为活动的管理员用户。尽管如此,我还是希望它只引入必要的主题资源。
抱歉,我有点啰嗦,但我想知道如何正确扩展应用程序。
非常感谢!
tldr;我如何 运行 使用一个代码库的多个网站,同时能够指定不同的所需自定义包?
我还没有实际测试过这个,但你可以通过定义多个 composer.json
文件来完成你想要的。阅读有关定义
然后,在每个composer.json
文件中定义一个different vendor directory。 示例:
{
"config": {
"vendor-dir": "plugins"
}
}
接下来,在每次安装时指定要安装的 composer.json
文件,来自文档:
By setting the COMPOSER env variable it is possible to set the filename of composer.json to something else.
来自文档的示例:
COMPOSER=composer-other.json php composer.phar install
在 specifying the environment 上阅读更多内容。
最后但同样重要的是,您必须 bootstrap 您的网站或应用程序的特定供应商目录:
require __DIR__.'/../custom-vendor-directory/autoload.php';
这可以在您的应用程序的 index.php
文件中自定义。 original source.