我正在执行一个简短的帖子软件包安装/更新脚本,以将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()
。