Php Laravel中共享组件包中的配置文件 介绍
我有一个巨大的项目,其中包含许多负责不同事情的Laravel项目。这些项目部分共享相同的数据库(用户、权限、角色、日志…),例如,有一个项目用于处理所有其他项目的用户数据和权限 例如,在本例中,项目中存在重复的模型(用户、权限、角色)。我通过构建独立的包来解决这个问题,该包将作为Composer包包含到所有共享这些模型的项目中 问题 我的问题是关于所需包的配置。例如,现在我使用来处理权限和角色。我的每个项目在这些包中共享相同的配置更改Php Laravel中共享组件包中的配置文件 介绍,php,laravel,laravel-5,composer-php,laravel-5.5,Php,Laravel,Laravel 5,Composer Php,Laravel 5.5,我有一个巨大的项目,其中包含许多负责不同事情的Laravel项目。这些项目部分共享相同的数据库(用户、权限、角色、日志…),例如,有一个项目用于处理所有其他项目的用户数据和权限 例如,在本例中,项目中存在重复的模型(用户、权限、角色)。我通过构建独立的包来解决这个问题,该包将作为Composer包包含到所有共享这些模型的项目中 问题 我的问题是关于所需包的配置。例如,现在我使用来处理权限和角色。我的每个项目在这些包中共享相同的配置更改 在我的共享包中有没有办法处理这些配置 一个包可以覆盖另一个
- 在我的共享包中有没有办法处理这些配置
- 一个包可以覆盖另一个包的配置文件吗李>
- Laravel实际上是如何处理在所需包中存在同名配置文件的情况的
register
方法加载您自己的配置文件,而不是依赖项的配置文件
例如:
class SharedPermissionServiceProvider extends PermissionServiceProvider
{
public function register()
{
if (isNotLumen()) {
$this->mergeConfigFrom(
__DIR__.'/../config/permission.php',
'permission'
);
}
$this->registerBladeExtensions();
}
}
如果您使用的是Laravel 5.5或更高版本,您可能需要为您的每个依赖项提供一个服务,以防止您的依赖项的服务提供商被使用。改为在composer.json
中注册服务提供商
如果您正在使用Laravel 5.4或更低版本,或者如果您正在覆盖不使用自动发现的服务提供商,请从config/app.php
中删除依赖项的服务提供商,并添加您自己的服务提供商