Ошибка в коде с Yii2: базовый метод Yii\UnknownMethodException: вызов неизвестного метода: Yii веб\UrlManager::addRules()
после сегодняшнего обновления зависимостей composer (с командой composer update) мое приложение Yii2 стало сломанным-оно бросает неизвестный метод-yiibaseUnknownMethodException: вызов неизвестного метода: yiiwebUrlManager:: addRules ()
после осмотра поставщик / yiisoft/yii2/web / UrlManager.в PHP файл я обнаружил, что нет метода addRule. И весь класс UrlManager отличается от класса в хранилище.
мой композитор.в 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": "*"
},
6 ответов
здесь - это объяснение того, почему это произошло:
Я думаю, что это снова решатель зависимостей композитора, делающий неожиданные вещи:
- требуются
yiisoft/yii2
в свой композитор.JSON, но не установлен плагин Composer asset.- тогда распознаватель зависимостей не находит пакеты с поставщиком
bower-asset
поэтому он ищет другие версииyiisoft/yii2
которые не имеют конфликта- в результатом является установка бета-версии yii2 для установки
правильным решением, как уже упоминалось, является установка composer-asset-plugin:
php composer.phar global require "fxp/composer-asset-plugin:1.0.*@dev"
Я думаю, что они изменили способ загрузки некоторых библиотек через 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
вроде обновление пошло совершенно неправильно, так как файлы отличаются от тех, что на GitHub - несколько функций отсутствует.
Что мне нужно было сделать, чтобы" избавиться " от этой ошибки:
скопировать код из репозитория в локальной файлы:
https://github.com/yiisoft/yii2/blob/master/framework/web/UrlManager.php
https://raw.githubusercontent.com/yiisoft/yii2/master/framework/helpers/BaseHtml.php
Это решило его на данный момент для меня.
Как говорит рикардгф, прочитайте это:
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 require " fxp / composer-asset-plugin: 1.0.* @dev"
композитор создать-проект-предпочитаю-Р --стабильность=Дев зависимостей коде с Yii2-приложения-основной базовый
попробуйте обновить композитор.json в следующий путь:
"require": {
"yiisoft/yii2": "*"
},
в папке проекта, напишите эту команду-
php composer.phar update