【问题标题】:Adding Composer Package to Laravel Providers array将 Composer 包添加到 Laravel Providers 数组
【发布时间】:2015-11-01 10:29:27
【问题描述】:

我想了解各种作曲家包的路径是如何在 Laravel 的 app.php 的 providers 数组中构造的。一些文档包括您需要复制/粘贴的行,但我想自己了解如何执行此操作。

示例

JWTAuth 包有以下行:

Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class

但是,这个类的路径是tymon\jwt-auth\src\JWTAuthServiceProvider.php

我想知道这条路是怎么构造的。

接下来我想知道如何将 Woothemes/Woocommerce api 包包含在 providers 数组中。如何构建这条路径?

可以在 https://packagist.org/packages/woothemes/woocommerce-api

找到该软件包

我做了一些研究,发现这个包并不是专门为 Laravel 编写的。引导文件 woocommerce-api.php 仅包含类的 require_once() 函数。

这样做是否可以接受,

require_once base_path('vendor/woothemes/woocommerce-api/woocommerce-api.php');

在我的控制器文件中?

【问题讨论】:

    标签: php laravel woocommerce composer-php


    【解决方案1】:

    这个

    Tymon\JWTAuth\Providers\JWTAuthServiceProvider
    

    不是文件系统路径,而是类的命名空间。

    由于您链接到的包不是为 laravel 编写的,因此还没有它的 ServiceProvider,但是you are free to create one。

    但是,您可以在 laravel 中使用没有 ServiceProvider 的每个外部包。你不会require_once 任何东西,但你会

    use FullNamespace\Name\To\Class
    

    在文件的顶部,例如看看你的一个控制器,它和这里的一样:

    <?php namespace App\CreateTables;
    
    use Config;
    use Illuminate\Database\Schema\Blueprint;
    use MeineBuyBox\UserDatabase;
    use Schema;
    

    这样,您打算使用的类将被加载到您需要它所在的文件中,您现在就可以使用它了。

    【讨论】:

    • 包括我需要的类的“使用”语句工作,但我在我的应用程序目录中添加了一个“库文件夹”并将这个文件夹包含在 composer.json 中。做了作曲家转储自动加载,错误消失了。
    • 你在libraries folder 中包含了什么?我希望不是这个包,因为当你这样做时composer update 这个包将被忽略。
    猜你喜欢
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 2014-08-02
    • 2015-03-10
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多