thecodingmachine / laravel-universal-service-provider
此Laravel服务提供程序允许Laravel应用程序使用container-interop/service-provider中定义的服务提供程序
Requires
- php: >=5.5.0
- acclimate/container: ^1.0
- container-interop/service-provider: ~0.3.0
- laravel/framework: ^5.0
- mnapoli/simplex: ^0.2.1
- puli/cli: ^1.0
- puli/composer-plugin: ^1.0
- puli/discovery: ^1.0
README
将container-interop中定义的service-provider
导入Laravel应用程序。
用法
安装
在composer中添加包
composer require thecodingmachine/laravel-universal-service-provider ^1.0
在您的config/app.php
文件中添加\TheCodingMachine\Laravel\ContainerInteropBridgeServiceProvider
。
config/app.php
<?php return [ //... 'providers' => [ //... TheCodingMachine\Laravel\ContainerInteropBridgeServiceProvider::class ], //... ];
使用thecodingmachine/discovery进行使用
桥接器将使用thecodingmachine/discovery来自动发现您的项目的通用服务提供程序。如果您正在加载的服务提供程序在thecodingmachine/discovery上发布,那么您就完成了。服务提供程序中声明的服务现在可在Laravel容器中访问!
使用手动声明进行使用
如果您正在使用的服务提供程序没有使用thecodingmachine/discovery发布,您将需要在`config/app.php`文件的`container-interop-service-providers`键中手动声明它。
在参数container-interop-service-providers
中设置服务提供程序的完全限定类名
config/app.php
<?php use \GlideModule\GlideServiceProvider; return [ ... 'container-interop-service-providers' => [ GlideServiceProvider::class ] ];
现在,您可以这样做:$app->make('glide')
禁用发现
您可以使用container-interop-service-provider-enable-discovery
设置来禁用发现。
config/app.php
<?php use \GlideModule\GlideServiceProvider; return [ ... 'container-interop-service-provider-enable-discovery' => false ];
##清除缓存
本包中的Laravel服务提供程序是一个延迟提供者。
Laravel编译并存储由该提供程序提供的所有服务的列表。然后,只有当您尝试解析这些服务之一时,Laravel才会加载服务提供程序。
如果您向通用服务提供程序之一添加了新服务,您需要清除“编译”的服务。您可以使用以下命令行来完成此操作
php artisan clear-compiled