Laravel API Wrapper-无法找到自动加载的包

时间:2018-02-04 14:38:41

标签: php laravel composer-php packages wrapper

我目前正在尝试为Laravel构建我的第一个API包装器,但在自动加载实际的PHP-Lirbary时遇到了一些问题。

当我尝试在视图中访问窗口小部件时收到以下错误。

错误:

ErrorException (E_ERROR)
Class 'Uploadcare\Api' not found

查看

{!! app()->uploadcare->widget->getInputTag('file_input') !!}

我的包ServiceProvider看起来像这样。

UploadcareServiceProvider

use Illuminate\Support\ServiceProvider;
use Uploadcare\Api as Uploadcare;


class UploadcareServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        $this->publishes([
            __DIR__.'/config/uploadcare.php' => config_path('uploadcare.php'),
        ]);
    }



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

        $this->app->singleton('uploadcare', function($app) {

            $publicKey = config('uploadcare.public_key');
            $privateKey = config('uploadcare.private_key');

            return new Uploadcare($publicKey, $privateKey);

        });
    }


    /**
     * Get the services provided by the provider.
     *
     * @return array
     */
    public function provides()
    {
        return [
            Uploadcare::class,
        ];
    }
}

在我的包中,composer.json文件需要包。

包composer.json

"require": {
        "uploadcare/uploadcare-php": "^2.1"
    }

在软件包的Vendor文件夹中,我能够找到 Uploadcae \ Api 类,所以我不确定为什么我收到此错误。

包composer.json

{
        "name": "company/uploadcare",
        "description": "An uploadcre integration for Laravel",
        "type": "library",
        "authors": [
            {
                "name": "Stan Barrows",
                "email": ""
            }
        ],
        "require-dev": {
            "orchestra/testbench": "^3.5",
            "phpunit/phpunit": "^6.3"
        },
        "autoload": {
            "psr-4": {
                "Company\\Uploadcare\\": "src/"
            }
        },
        "autoload-dev": {
        },
        "extra": {
            "laravel": {
                "providers": [
                    "Company\\Uploadcare\\UploadcareServiceProvider"
                ]
            }
        },
        "require": {
            "uploadcare/uploadcare-php": "^2.1"
        }
    }

主项目composer.json文件

 {
        "name": "laravel/laravel",
        "description": "The Laravel Framework.",
        "keywords": ["framework", "laravel"],
        "license": "MIT",
        "type": "project",


        "repositories": [
            {
                "type": "path",
                "url": "packages/company/uploadcare"
            }
        ],

        "require": {
            "php": ">=7.0.0",
            "fideloper/proxy": "~3.3",
            "laravel/framework": "5.5.*",
            "laravel/tinker": "~1.0",
            "laravelnews/laravel-twbs4": "^1.3",
            "ramsey/uuid": "^3.7"
        },


        "require-dev": {
            "filp/whoops": "~2.0",
            "fzaninotto/faker": "~1.4",
            "laravel/dusk": "^2.0",
            "mockery/mockery": "~1.0",
            "phpunit/phpunit": "~6.0",
            "symfony/thanks": "^1.0"
        },
        "autoload": {
            "classmap": [
                "database/seeds",
                "database/factories"
            ],

            "psr-4": {
                "Genusshaus\\": "app/",
                "Smart6ate\\Roles\\": "packages/company/roles/src",
                "Smart6ate\\Uploadcare\\": "packages/company/uploadcare/src/"


            },
            "files": ["tests/Helpers/functions.php"]
        },
        "autoload-dev": {
            "psr-4": {
                "Tests\\": "tests/"
            }


        },

        "extra": {
            "laravel": {
                "dont-discover": [
                ]
            }
        },
        "scripts": {
            "post-root-package-install": [
                "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
            ],
            "post-create-project-cmd": [
                "@php artisan key:generate"
            ],
            "post-autoload-dump": [
                "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
                "@php artisan package:discover"
            ]
        },
        "config": {
            "preferred-install": "dist",
            "sort-packages": true,
            "optimize-autoloader": true
        }
    }

0 个答案:

没有答案