我已经做了一个自动加载转储来重建我的类图

Posted

技术标签:

【中文标题】我已经做了一个自动加载转储来重建我的类图【英文标题】:I have done a autoload dump to rebuild my class map 【发布时间】:2016-02-24 06:51:45 【问题描述】:

通过composer安装Moltin Cart,然后添加Service Provider:'Moltin\Cart\CartServiceProvider'并添加别名'Cart' => 'Moltin\Cart\Facade'

现在我收到 laravel 4 错误:

Symfony \ Component \ Debug \ Exception \ FatalErrorException Class 'Moltin\Cart\CartServiceProvider' not found.

我已经做了一个自动加载转储来重建我的类映射composer dump-autoload,但仍然有问题。

我的 composer.json


    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": 
        "laravel/framework": "4.1.*",
        "intervention/image": "dev-master",
         "moltin/cart": "dev-master"
    ,

    "autoload": 
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    ,
    "scripts": 
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    ,
    "config": 
        "preferred-install": "dist"
    ,
    "minimum-stability": "dev"


我的 app.php 在这里

<?php

return array(

/*
|--------------------------------------------------------------------------
| Application Debug Mode
|--------------------------------------------------------------------------
|
| When your application is in debug mode, detailed error messages with
| stack traces will be shown on every error that occurs within your
| application. If disabled, a simple generic error page is shown.
|
*/

'debug' => true,

/*
|--------------------------------------------------------------------------
| Application URL
|--------------------------------------------------------------------------
|
| This URL is used by the console to properly generate URLs when using
| the Artisan command line tool. You should set this to the root of
| your application so that it is used when running Artisan tasks.
|
*/

'url' => 'http://localhost',

/*
|--------------------------------------------------------------------------
| Application Timezone
|--------------------------------------------------------------------------
|
| Here you may specify the default timezone for your application, which
| will be used by the PHP date and date-time functions. We have gone
| ahead and set this to a sensible default for you out of the box.
|
*/

'timezone' => 'UTC',

/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/

'locale' => 'en',

/*
|--------------------------------------------------------------------------
| Encryption Key
|--------------------------------------------------------------------------
|
| This key is used by the Illuminate encrypter service and should be set
| to a random, 32 character string, otherwise these encrypted strings
| will not be safe. Please do this before deploying an application!
|
*/

'key' => 'Hb2cd1FUfJV6S0ApZAS9QSAQEFEiusUc',

/*
|--------------------------------------------------------------------------
| Autoloaded Service Providers
|--------------------------------------------------------------------------
|
| The service providers listed here will be automatically loaded on the
| request to your application. Feel free to add your own services to
| this array to grant expanded functionality to your applications.
|
*/

'providers' => array(

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    'Illuminate\Cache\CacheServiceProvider',
    'Illuminate\Session\CommandsServiceProvider',
    'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'Illuminate\Routing\ControllerServiceProvider',
    'Illuminate\Cookie\CookieServiceProvider',
    'Illuminate\Database\DatabaseServiceProvider',
    'Illuminate\Encryption\EncryptionServiceProvider',
    'Illuminate\Filesystem\FilesystemServiceProvider',
    'Illuminate\Hashing\HashServiceProvider',
    'Illuminate\html\HtmlServiceProvider',
    'Illuminate\Log\LogServiceProvider',
    'Illuminate\Mail\MailServiceProvider',
    'Illuminate\Database\MigrationServiceProvider',
    'Illuminate\Pagination\PaginationServiceProvider',
    'Illuminate\Queue\QueueServiceProvider',
    'Illuminate\Redis\RedisServiceProvider',
    'Illuminate\Remote\RemoteServiceProvider',
    'Illuminate\Auth\Reminders\ReminderServiceProvider',
    'Illuminate\Database\SeedServiceProvider',
    'Illuminate\Session\SessionServiceProvider',
    'Illuminate\Translation\TranslationServiceProvider',
    'Illuminate\Validation\ValidationServiceProvider',
    'Illuminate\View\ViewServiceProvider',
    'Illuminate\Workbench\WorkbenchServiceProvider',
     'Intervention\Image\ImageServiceProvider',
      'Moltin\Cart\CartServiceProvider'


),

/*
|--------------------------------------------------------------------------
| Service Provider Manifest
|--------------------------------------------------------------------------
|
| The service provider manifest is used by Laravel to lazy load service
| providers which are not needed for each request, as well to keep a
| list of all of the services. Here, you may set its storage spot.
|
*/

'manifest' => storage_path().'/meta',

/*
|--------------------------------------------------------------------------
| Class Aliases
|--------------------------------------------------------------------------
|
| This array of class aliases will be registered when this application
| is started. However, feel free to register as many as you wish as
| the aliases are "lazy" loaded so they don't hinder performance.
|
*/

'aliases' => array(

    'App'             => 'Illuminate\Support\Facades\App',
    'Artisan'         => 'Illuminate\Support\Facades\Artisan',
    'Auth'            => 'Illuminate\Support\Facades\Auth',
    'Blade'           => 'Illuminate\Support\Facades\Blade',
    'Cache'           => 'Illuminate\Support\Facades\Cache',
    'ClassLoader'     => 'Illuminate\Support\ClassLoader',
    'Config'          => 'Illuminate\Support\Facades\Config',
    'Controller'      => 'Illuminate\Routing\Controller',
    'Cookie'          => 'Illuminate\Support\Facades\Cookie',
    'Crypt'           => 'Illuminate\Support\Facades\Crypt',
    'DB'              => 'Illuminate\Support\Facades\DB',
    'Eloquent'        => 'Illuminate\Database\Eloquent\Model',
    'Event'           => 'Illuminate\Support\Facades\Event',
    'File'            => 'Illuminate\Support\Facades\File',
    'Form'            => 'Illuminate\Support\Facades\Form',
    'Hash'            => 'Illuminate\Support\Facades\Hash',
    'HTML'            => 'Illuminate\Support\Facades\HTML',
    'Input'           => 'Illuminate\Support\Facades\Input',
    'Lang'            => 'Illuminate\Support\Facades\Lang',
    'Log'             => 'Illuminate\Support\Facades\Log',
    'Mail'            => 'Illuminate\Support\Facades\Mail',
    'Paginator'       => 'Illuminate\Support\Facades\Paginator',
    'Password'        => 'Illuminate\Support\Facades\Password',
    'Queue'           => 'Illuminate\Support\Facades\Queue',
    'Redirect'        => 'Illuminate\Support\Facades\Redirect',
    'Redis'           => 'Illuminate\Support\Facades\Redis',
    'Request'         => 'Illuminate\Support\Facades\Request',
    'Response'        => 'Illuminate\Support\Facades\Response',
    'Route'           => 'Illuminate\Support\Facades\Route',
    'Schema'          => 'Illuminate\Support\Facades\Schema',
    'Seeder'          => 'Illuminate\Database\Seeder',
    'Session'         => 'Illuminate\Support\Facades\Session',
    'SSH'             => 'Illuminate\Support\Facades\SSH',
    'Str'             => 'Illuminate\Support\Str',
    'URL'             => 'Illuminate\Support\Facades\URL',
    'Validator'       => 'Illuminate\Support\Facades\Validator',
    'View'            => 'Illuminate\Support\Facades\View',
     'Image'           => 'Intervention\Image\Facades\Image',
      'Cart'            => 'Moltin\Cart\Facade'
),

);

【问题讨论】:

我们可以看看你的 app.php 吗? 可以看到上面的app.php? 请帮我把我的app.php贴在上面 您确认 MoltinCart 在您的供应商目录中吗? 在我的供应商目录中有 moltin 但没有 moltincart 【参考方案1】:

您需要的包不包含Moltin\Cart\FacadeMoltin\Cart\CartServiceProvider 类。这是因为“moltin/cart”包是一个通用包,它不提供与 Laravel 集成的任何东西。

您要查找的包名为“moltin/laravel-cart”。

但是,我建议不要使用它。 “moltin/cart” master 分支的测试目前失败,并且没有正式的标记发布。 “moltin/laravel-cart”的版本很尴尬(似乎他们的版本与 Laravel 的目标版本之一同步),但是他们没有注意到 Laravel 明确不遵循语义版本控制,因此要求 ~5.0 为“moltin/ laravel-cart" 会安装一些不兼容的 5.0 或 5.1 版本。

【讨论】:

我安装了 laravel 5.1 但出现错误,可捕获的致命错误:参数 1 传递给 Illuminate\Foundation\Application::d etectEnvironment() 必须是 Closure 的实例,给定数组, 我的项目我是使用 laravel 4.1 创建的,我如何移动到 laravel 5.1 并查看清晰的 mya 项目

以上是关于我已经做了一个自动加载转储来重建我的类图的主要内容,如果未能解决你的问题,请参考以下文章

作曲家转储自动加载,问题

PHP - 重置自动加载和声明的类

Zend Framework 1.11:如何自动加载使用命名空间的类

PSR-4 和类图自动加载的区别?

编写器故障排除:不使用CodeIgniter 3自动加载的类

作曲家转储自动加载无法识别的命令