【问题标题】:Laravel package dependency not loadedLaravel 包依赖未加载
【发布时间】:2018-03-05 01:02:31
【问题描述】:

我无法将包依赖项安装到供应商文件夹中。请参阅下面的文件。从干净的 laravel 5.5 开始

/packages/anders/pack/composer.json

{
    "name": "anders/pack",
    "description": "A test package",
    "type": "laravel",
    "require": {
        "yajra/laravel-datatables-oracle": "~8.0"
    },
    "license": "MIT",
    "minimum-stability": "dev"
}

将我的包手动添加到 /composer.json 以在开发时对其进行测试:

...
"psr-4": {
    "App\\": "app/",
    "Anders\\Pack\\": "packages/anders/pack/src"            
}
...

此时我应该很好地在项目根目录进行作曲家更新?但是没有安装 yajra 依赖项。我试过 composer dumpautoload,删除锁定文件和清除缓存但没有成功。在包内运行 composer update 安装它就好了,所以 json 是有效的。

我认为这不是问题,但这是我的服务提供商

namespace Anders\Pack;

use Illuminate\Support\ServiceProvider;

class PackServiceProvider extends ServiceProvider
{
    /**
    * Bootstrap any application services.
    *
    * @return void
    */
    public function boot()
    {   
        require __DIR__ . '/routes/web.php';
    }

    /**
    * Register any application services.
    *
    * @return void
    */
    public function register()
    {
        //
    }
}

这很好用,它为应用程序添加了额外的路由。

【问题讨论】:

    标签: php laravel composer-php


    【解决方案1】:

    您需要按照以下步骤来解决此问题:

    1. 在您的包目录中运行composer update 命令。
    2. 现在,只要您想使用此依赖项use Yajra\DataTables\yourDependency,请在您的包中(在文件顶部)使用它

    【讨论】:

      【解决方案2】:

      Composer 不会解析您的自动加载包的依赖关系。您需要手动将这些依赖项添加到您的根 composer.json

      【讨论】:

        猜你喜欢
        • 2015-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-17
        • 2011-07-14
        • 1970-01-01
        • 2022-08-06
        • 1970-01-01
        相关资源
        最近更新 更多