在今天更新composer依赖项(使用composer update命令)后,我的Yii2应用程序崩溃-它抛出未知方法–yii\base\UnknownMethodException:调用未知方法:yii\web\UrlManager::addRules()
在检查vendor/yiisoft/yii2/web/UrlManager.php文件后,我发现没有方法addRule。整个类UrlManager与存储库中的类不同。
我的composer.json:
"minimum-stability": "dev",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "*",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
"yiisoft/yii2-gii": "2.0.0-beta",
"claudejanz/yii2-mygii": "*",
"kartik-v/yii2-grid": "dev-master",
"kartik-v/yii2-builder": "dev-master",
"2amigos/yii2-switch-widget": "*",
"yiisoft/yii2-jui": "*",
"DsXack/yii2-underscore": "*",
"2amigos/yii2-editable-widget": "*",
"warrence/yii2-kartikgii": "*"
},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*"
},
我认为他们已经改变了通过composer加载某些库的方式。
解决方法:
添加到composer.json
"extra": {
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
并运行:
# php composer.phar global require "fxp/composer-asset-plugin:1.0.*@dev"
# php composer.phar update --dev
更多信息:在Github上发布和在Github上发布
全部归功于:@githubjeka和@SonicGD
以下是发生这种情况的原因解释:
我认为这又是作曲家依赖解析程序做了意想不到的事情:
- 您在composer.json中需要
yiisoft/yii2
,但没有安装composer资产插件- 则依赖解析程序找不到与供应商
bower-asset
的包,因此它会查找没有冲突的yiisoft/yii2
的其他版本- 结果是安装了要安装的yii2测试版
如前所述,正确的解决方案是安装composer资产插件:
php composer.phar global require "fxp/composer-asset-plugin:1.0.*@dev"
更新似乎完全错误,因为文件与github上的文件不同——缺少几个函数。
我必须做什么来"消除"这个错误:
将代码从存储库复制到本地文件中:
https://github.com/yiisoft/yii2/blob/master/framework/web/UrlManager.php
https://raw.githubusercontent.com/yiisoft/yii2/master/framework/helpers/BaseHtml.php
这暂时解决了我的问题。
正如ricardgf所说,请阅读以下内容:
https://github.com/yiisoft/yii2/blob/master/docs/guide/start-installation.md
然后运行:
composer.phar global require "fxp/composer-asset-plugin:1.0.*@dev"
和
composer.phar update --prefer-source --no-interaction
ok我用这种方式解决了安装yii2的问题:
composer global需要"fxp/composer资产插件:1.0.*@dev"
composer创建项目--prefer dist--stability=dev yiisoft/yii2-app basic basic
尝试将您的composer.json更新为以下方式:
"require": {
"yiisoft/yii2": "*"
},
在项目目录中,编写以下命令-
php composer.phar update