thecodingmachine/laravel-universal-service-provider

此Laravel服务提供程序允许Laravel应用程序使用container-interop/service-provider中定义的服务提供程序

v0.3.0 2016-10-24 10:55 UTC

This package is auto-updated.

Last update: 2024-09-06 23:41:32 UTC


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