【问题标题】:How to adapt any package from packagist for Laravel 5?如何为 Laravel 5 改编来自 packagist 的任何包?
【发布时间】:2016-01-01 00:16:12
【问题描述】:

我需要在我的 Laravel 应用程序中使用这个包 (https://github.com/elastic/elasticsearch-php)。但它不是专门为 Laravel 创建的。我如何将这个包或任何其他来自 packagist 的包用于 Laravel 5?我想我需要一些 ServiceContainer 和 Facade...

【问题讨论】:

    标签: laravel elasticsearch package


    【解决方案1】:

    Using third party composer packages with Laravel 4

    注意:虽然这是 Laravel 4 的答案。但我相信它可以帮助你弄清楚你想要实现的目标。

    【讨论】:

    • 只包含链接的答案不好。如果网站出现故障,您的回答将毫无价值。还请提供问题的解决方案。
    【解决方案2】:

    您可以使用 composer autoload.php 加载任何 php 包。它可以帮助您自动加载为 laravel 或非 laravel 构建的所有包,在使用 composer 安装包后,您可以使用 use 关键字在控制器或模型中调用或导入这些包 这是一个调用 elasticsearch 的示例包类

    use Elasticsearch\ClientBuilder;
    
    class Post extends Controller{
    
      public function index(){
        $client = ClientBuilder::create()->build();
      }
    
    }
    

    在上面的示例中,您没有自动加载 serviceProvider 或外观,composer autoload 解决了您的所有问题。阅读更多关于使用关键字

    http://php.net/manual/en/language.namespaces.importing.php

    【讨论】:

    • 那么,不需要创建服务提供者??我唯一能做的就是简化包的使用是创建外观不使用构造'使用 Elasticsearch\ClientBuilder'?
    • 是的,不需要创建服务提供者,是的,您可以创建 Facade,而不是静态调用 ClientBuilder 类,我认为如果您创建 Facade,这对您来说将是额外的工作,为什么不简单地使用 ' 导入使用 Elasticsearch\ClientBuilder' 你可以在这里阅读如何创建外观 n0impossible.com/article/how-to-create-facade-on-laravel-51
    • 好的。我会用你的变种。但是为了更好地理解......为什么人们为任何其他软件包制作服务提供商?在什么情况下值得?
    猜你喜欢
    • 1970-01-01
    • 2013-06-04
    • 2016-08-13
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多