如何在脚本中获取软件包名称



我正在执行一个简短的帖子软件包安装/更新脚本,以将vendor目录的某些文件复制到我的public

按照composer站点的示例,但是当我执行它时,我会发现一个错误:

致命错误:致电未定义的方法COMPOSER DISTISTINCHINCYRESOLVER aperation UpdateOperation :: getPackage()in S: Projects projects composer-scripts fieecopy.php 17

代码是:

namespace composer-scipts;
use ComposerScriptEvent;
class FileCopy
{
    public static function postPackageInstall( Event $event )
    {
        $packageName = $event->getOperation()->getPackage()->getName();
        echo "$packageNamen";
    }
    public static function postPackageUpdate( Event $event )
    {
        $packageName = $event->getOperation()->getPackage()->getName();
        echo "$packageNamen";
    }
}

任何人都可以建议吗?

进一步测试后,我已经确定了该问题,这实际上是由于两个不同的接口具有相同/相似的方法,但具有不同的签名。因此,我结束了:

public static function postPackageInstall( Event $event )
{
    $packageName = $event->getOperation()->getPackage()->getName();
    if( $packageName == 'twbs/bootstrap' )
    {
        self::copyFiles();
    }
}
public static function postPackageUpdate( Event $event )
{
    $packageName = $event->getOperation()->getInitialPackage()->getName();
    if( $packageName == 'twbs/bootstrap' )
    {
        self::copyFiles();
    }
}

所以,postpackageinstall使用 getPackage() as-as as as postpackageupdate使用 getInitialPackage()

相关内容

  • 没有找到相关文章

最新更新