使用PhpStorm删除CakePHP中的插件后,“会员有私人访问错误”

时间:2016-08-25 07:28:16

标签: php cakephp composer-php phpstorm

从我的CakePHP框架中删除插件以及与之关联的所有代码行后,我getInitializer文件夹中autoload_static.php的{​​{1}}函数出错:

vendor->composer

所有前缀和public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { $loader->prefixLengthsPsr4 = ComposerStaticInit8835d383dd0f2dc92619594332e8ea7e::$prefixLengthsPsr4; $loader->prefixDirsPsr4 = ComposerStaticInit8835d383dd0f2dc92619594332e8ea7e::$prefixDirsPsr4; $loader->prefixesPsr0 = ComposerStaticInit8835d383dd0f2dc92619594332e8ea7e::$prefixesPsr0; $loader->classMap = ComposerStaticInit8835d383dd0f2dc92619594332e8ea7e::$classMap; }, null, ClassLoader::class); } 都带有下划线,错误消息显示:

  

“会员有私人访问权”

我对PHP很新,所以我的问题是如何处理这个错误?我想删除这4行代码是不安全的。

我已经尝试更新作曲家并使PhpStorm中的缓存/重启无效。

编辑1

我当然不应该从作曲家文件中手动删除与旧插件相关的代码行。

作曲家诊断: 检查composer.json:失败 require.cakephp / plugin-installer:应避免使用未绑定的版本约束(*) 检查平台设置:FAIL PHP使用的OpenSSL库(0.9.8y)不支持TLSv1.2或TLSv1.1。 如果可能,您应该将OpenSSL升级到1.0.1或更高版本。 检查git设置:好的 检查http连接到packagist:警告:通过http访问packagist.org这是一个不安全的协议。

由于项目不是太旧,它可能是最简单的方法,只需完全删除它并从头开始重新启动,或者是否有一个简单的解决方案?

1 个答案:

答案 0 :(得分:7)

这些行在技术上被错误地突出显示为错误,甚至在您修改代码之前它们都被突出显示为错误。

代码将特定对象和作用域绑定到闭包,在这种情况下,它将$loader对象(ClassLoader的实例)与ClassLoader::class作用域绑定。这将导致闭包以一种使私有方法对其可见的方式绑定到$loader对象,因此在运行时不会出现错误。

所以问题只是PhpStorm解析器不够智能(还)才能识别出来。

另请参阅 http://www.php.net/manual/en/closure.bind.php

就你的其他作曲家问题而言,供应商文件应该总是可以安全删除,即vendor文件夹通常只应包含通过作曲家安装的代码,这意味着万一你搞砸了,如果需要,您应该只需删除vendor文件夹,修复composer.json文件(并删除composer.lock文件),然后运行composer update或{再次{1}}命令。