composer / Laravel安装深拷贝错误

时间:2018-04-17 10:31:38

标签: php laravel composer-php

我有以下composer.json文件:

    {
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "intervention/image": "dev-master",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0",
        "predis/predis": "^1.1",
        "quickpay/quickpay-php-client": "1.0.*",
        "sendgrid/sendgrid": "~6.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.7"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    }
}

现在,当我运行composer install时,我收到以下错误:

Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postInstall
PHP Warning:  Uncaught ErrorException: require(C:\xampp\htdocs\myproject\vendor\composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.p
Warning: Uncaught ErrorException: require(C:\xampp\htdocs\myproject\vendor\composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php): failed to open stream: No such file or directory in C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php:66
Stack trace:
#0 C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php(66): Composer\Util\ErrorHandler::handle(2, 'require(C:\\xamp...', 'C:\\xampp\\htdocs...', 66, Array)
#1 C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php(66): require()
#2 C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php(56): composerRequiree07c9ae79fe3293bef21ef81a65b59a6('6124b4c8570aa39...', 'C:\\xampp\\htdocs...')
#3 C:\xampp\htdocs\myproject\vendor\autoload.php(7): ComposerAutoloaderInite07c9ae79fe3293bef21ef81a65b59a6::getLoader()
#4 C:\xampp\htdocs\myproject\vendor\laravel\framework\src\Illuminate\Foundation\ComposerScripts.php(17): require_once('C:\\xampp\\htdocs...')
#5 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php(282): Illumi in C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php on line 66
PHP Fatal error:  composerRequiree07c9ae79fe3293bef21ef81a65b59a6(): Failed opening required 'C:\xampp\htdocs\myproject\vendor\composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\myproject\vendor\composer\
autoload_real.php on line 66

Fatal error: composerRequiree07c9ae79fe3293bef21ef81a65b59a6(): Failed opening required 'C:\xampp\htdocs\myproject\vendor\composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\myproject\vendor\composer\autol
oad_real.php on line 66

当我跑php artisan serve时:

PHP Warning:  require(C:\xampp\htdocs\myproject\vendor\composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php): failed to open stream: No such file or directory in C:\xampp\htdocs\escorPHP Stack trace:
    PHP   1. {main}() C:\xampp\htdocs\myproject\artisan:0
    PHP   2. require() C:\xampp\htdocs\myproject\artisan:16
    PHP   3. require() C:\xampp\htdocs\myproject\bootstrap\autoload.php:17
    PHP   4. ComposerAutoloaderInite07c9ae79fe3293bef21ef81a65b59a6::getLoader() C:\xampp\htdocs\myproject\vendor\autoload.php:7
    PHP   5. composerRequiree07c9ae79fe3293bef21ef81a65b59a6() C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php:56

    Warning: require(C:\xampp\htdocs\myproject\vendor\composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php): failed to open stream: No such file or directory in C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php on line 66

    Call Stack:
        0.2210     348056   1. {main}() C:\xampp\htdocs\myproject\artisan:0
        0.2220     349040   2. require('C:\xampp\htdocs\myproject\bootstrap\autoload.php') C:\xampp\htdocs\myproject\artisan:16
        0.2229     350000   3. require('C:\xampp\htdocs\myproject\vendor\autoload.php') C:\xampp\htdocs\myproject\bootstrap\autoload.php:17
        0.2240     364976   4. ComposerAutoloaderInite07c9ae79fe3293bef21ef81a65b59a6::getLoader() C:\xampp\htdocs\myproject\vendor\autoload.php:7
        0.2516    1349816   5. composerRequiree07c9ae79fe3293bef21ef81a65b59a6() C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php:56

    PHP Fatal error:  require(): Failed opening required 'C:\xampp\htdocs\myproject\vendor\composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php on line 66
    PHP Stack trace:
    PHP   1. {main}() C:\xampp\htdocs\myproject\artisan:0
    PHP   2. require() C:\xampp\htdocs\myproject\artisan:16
    PHP   3. require() C:\xampp\htdocs\myproject\bootstrap\autoload.php:PHP   4. ComposerAutoloaderInite07c9ae79fe3293bef21ef81a65b59a6::getLoader() C:\xampp\htdocs\myproject\vendor\autoload.php:7
    PHP   5. composerRequiree07c9ae79fe3293bef21ef81a65b59a6() C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php:56

    Fatal error: require(): Failed opening required 'C:\xampp\htdocs\myproject\vendor\composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php on line 66

    Call Stack:
        0.2210     348056   1. {main}() C:\xampp\htdocs\myproject\artisan:0
        0.2220     349040   2. require('C:\xampp\htdocs\myproject\bootstrap\autoload.php') C:\xampp\htdocs\myproject\artisan:16
        0.2229     350000   3. require('C:\xampp\htdocs\myproject\vendor\autoload.php') C:\xampp\htdocs\myproject\bootstrap\autoload.php:17
        0.2240     364976   4. ComposerAutoloaderInite07c9ae79fe3293bef21ef81a65b59a6::getLoader() C:\xampp\htdocs\myproject\vendor\autoload.php:7
        0.2516    1349816   5. composerRequiree07c9ae79fe3293bef21ef81a65b59a6() C:\xampp\htdocs\myproject\vendor\composer\autoload_real.php:56

有谁能告诉我我错过了什么或做错了什么?

我试图运行composer update --no-script,但我仍然无法为项目提供服务

2 个答案:

答案 0 :(得分:6)

似乎正在发生的事情是自动装带器“卡在”无效状态。机会是以前包含的包,DeepCopy作为依赖项,并通过自己的composer.json classes条目急切加载它。

这将迫使作曲家在每次调用自动加载器时尝试加载它,如果随后删除了包,它将会中断。

通常可以通过以下方式解决此问题:

composer dump-autoload

将根据当前的composer.lock重建自动加载器(不是100%,但这是它似乎正在做的事情)。

在最糟糕的情况下,如果由于某种原因dump-autoload不起作用,则删除供应商目录并重新运行composer install应该有效。

答案 1 :(得分:0)

我解决了这个问题。要将所有.htaccess文件重置到服务器中。