如何修复作曲家post-install-cmd脚本的错误?

Art*_*san 9 php autoloader composer-php

我想使用composer脚本进行一些安装后的操作,例如将文件从bootstrap vendor文件夹复制到我的Web应用程序公用文件夹.我有PHP世界和Web应用程序开发的宝贝经验.

我正在尝试通过遵循本教程学习一点

这是我的目录结构* 在此输入图像描述

这是我的composer.json

{
    "name": "Composer Script",
    "description": "An example to demonstrate the use of Composer scripts",
    "version": "1.0.0",
    "require": {
        "twitter/bootstrap": ">=3.0"
    },

    "scripts": {
        "post-install-cmd": [
            "ComposerScript\\Installer::postInstall"
        ],
        "post-package-install": [
            "/var/www/test/composer-script/install.sh"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

这是ComposerScript\Installer.php

class Installer

    {
        public static function postInstall(Event $event)
        {
            $composer = $event->getComposer();
            // do stuff
        }

        public static function postPackageInstall(Event $event)
        {
            $installedPackage = $event->getOperation()->getPackage();
            // do stuff
        }

        public static function warmCache(Event $event)
        {
            // make cache toasty
        }
    }
Run Code Online (Sandbox Code Playgroud)

执行composer install之后我遇到了这个错误 在此输入图像描述

此时install.sh为空

如何解决这个错误,特别是什么是自动加载?,我不知道要搜索哪些关键字请建议我阅读一下.

not*_*mii 5

以防有人再次遇到这个问题.这是勺子饲料样品.:)

在这样的给定场景中

在此输入图像描述

我们必须将我们的composer.json设置为ff.设置

"autoload": {
    "psr-0": {
        "ComposerScript\\Installer" : ""
    }
},

"scripts": {
    "post-package-update": [
        "ComposerScript\\Installer::postPackageUpdate"
    ]
}
Run Code Online (Sandbox Code Playgroud)

那么Installer.php的内容就是

namespace ComposerScript;

use Composer\Script\Event;

class Installer
{
    public static function postUpdate(Event $event)
    {
    $composer = $event->getComposer();
    // do stuff
    }

    public static function postPackageUpdate(Event $event)
    {
    $packageName = $event->getOperation()
        ->getPackage()
        ->getName();
    echo "$packageName\n";
    // do stuff
    }

    public static function warmCache(Event $event)
    {
    // make cache toasty
    }
}
Run Code Online (Sandbox Code Playgroud)

然后执行php composer.phar update将毫无预警地工作.