【问题标题】:Laravel 5.1 Package Dependancies ErrorLaravel 5.1 包依赖项错误
【发布时间】:2015-07-10 06:31:11
【问题描述】:

我正在 L5.1 中开发一个包。

https://github.com/crodas/TextRank 列为依赖项,composer 已将其加入。

在我的服务提供者的注册方法中添加了$this->app->register('crodas\TextRank\Config’);,但是当我尝试运行应用程序时,我得到一个`Class 'crodas\TextRank\Config not found 错误

我确定我只是错过了一些小东西!提前致谢!!

【问题讨论】:

    标签: laravel package


    【解决方案1】:

    为了将该包与 Laravel 集成,您需要创建一个自定义服务提供者。 Laravel docs 有一个很好的完整程序示例,您的情况类似于:

    创建服务提供者

    php artisan make:provider TextRankServiceProvider
    

    自定义服务提供者(文件app/Providers/TextRankServiceProvider.php

    <?php
    
    namespace App\Providers;
    
    use crodas\TextRank\Config;
    use crodas\TextRank\TextRank;
    use Illuminate\Support\ServiceProvider;
    
    class TextRankServiceProvider extends ServiceProvider
    {
        /**
        * Register bindings in the container.
        *
        * @return void
        */
        public function register()
        {
            $this->app->singleton('TextRank', function ($app) {
                $config   = new Config;
                return new TextRank($config);
            });
        }
    }
    

    Register service providerApp\Providers\TextRankServiceProvider::class 添加到文件config/app.php

    为了使用包

    $keywords = app('TextRank')->getKeywords($some_long_text);
    

    注意:该代码尚未经过实际测试。我只是按照 TextRank 包和 Laravel 的说明进行操作。

    【讨论】:

    • 嘿 Javi,我仍然收到 Class 'crodas\TextRank\Config not found 错误。我也曾尝试简单地跟随这两个文档。还有其他想法吗?我觉得奇怪的是错误行在 register 方法中而不是顶部的 use 语句。
    • 我现在已经尝试了代码并且它可以工作。 Class not found 表示 Composer 无法找到该类。您是否使用 Composer 安装了该软件包?为此,将"minimum-stability": "dev" 添加到您的composer.json file 并运行composer require crodas/text-rank
    • 正如我在原帖中所说,我将其用作我自己包的依赖项。我设法通过在您的示例顶部包含作曲家自动加载文件来使其工作。
    猜你喜欢
    • 2015-09-08
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 2014-09-18
    • 2015-12-14
    • 2014-11-10
    相关资源
    最近更新 更多