php - Laravel 没有看到我的包裹

标签 php laravel

为我的 laravel 应用程序创建一个包(购物车)。得到一个服务提供者——CartServiceProvider,属于命名空间Alexxosipov\Cart

<?php

namespace Alexxosipov\Cart;

use Illuminate\Support\ServiceProvider;
use Alexxosipov\Cart\Cart as Cart;

class CartServiceProvider extends ServiceProvider {
    public function boot() {

    }

    public function register() {
        $this->app->singleton('cart', function() {
            return new Cart();
        });
    }
} 

然后,我在根 composer.json 中创建新的命名空间:

"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
            "Alexxosipov\\Сart\\": "packages/alexxosipov/cart/src"
        }
    }

然后我将它添加到 app.php 中的数组 providers 中: Alexxosipov\Cart\CartServiceProvider::类,

并制作composer dump-autoload。但是我仍然有一个错误:

FatalErrorException in ProviderRepository.php line 146:
Class 'Alexxosipov\Cart\CartServiceProvider' not found

我哪里错了?

UPD:我的文件系统截图 enter image description here

最佳答案

尝试:

"Alexxosipov\\": "packages/alexxosipov/"

代替:

"Alexxosipov\\Сart\\": "packages/alexxosipov/cart/"

然后...将您的 serviceProvider 类保存在“packages/alexxosipov/cart/”中,运行 compose dumpautoload 命令并更新您的服务提供商:

<?php

namespace Alexxosipov\Cart;

use Illuminate\Support\ServiceProvider;
use Alexxosipov\Cart\Cart as Cart;

class CartServiceProvider extends ServiceProvider {
    public function boot() {}

    public function register() {
        $this->app->singleton('cart', function() {
            return new Cart();
        });
    }
} 

这一定能正常工作。

关于php - Laravel 没有看到我的包裹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48306876/

相关文章:

oop - 管理 Laravel 中的关系,遵循存储库模式

php - 在PHP中的另一个类中扩展一个类

php - 单选按钮多选

php - C & MySql 或 PHP & MySql 哪个更快?

php - 在数据库中保存 morphOne 多态

php - 在 Laravel 7 中返回响应图像

php - 如何在 php form_submit 按钮中添加样式或放置类

php - Docker PHP镜像助手和构建依赖项

php - 如何在 Laravel Eloquent 中通过预加载按键索引返回的数组?

php - Laravel 存储纬度和经度