[英]Knp menu bundle warnings after update to symfony 2.3
将symfony从2.2更新到2.3之后,我在所有页面和脚本中出现新的错误:
不建议使用:由于名称空间不建议使用Knp \\ Menu \\ Silex \\ Voter \\ RouteVoter,请改用Knp \\ Menu \\ Matcher \\ Voter \\ RouteVoter。 在第20行的\\ vendor \\ knplabs \\ knp-menu \\ src \\ Knp \\ Menu \\ Silex \\ Voter \\ RouteVoter.php中
和
不推荐使用:不推荐使用Knp \\ Menu \\ Silex \\ RoutingExtension,请改用Knp \\ Menu \\ Integration \\ Symfony \\ RoutingExtension。 在第15行的\\ vendor \\ knplabs \\ knp-menu \\ src \\ Knp \\ Menu \\ Silex \\ RoutingExtension.php中
我该如何解决? 我在网络上找不到答案。
先感谢您
这是我的composer.json:
{
"name": "symfony/framework-standard-edition",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.3.*",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.2.*",
"twig/extensions": "1.0.*",
"symfony/assetic-bundle": "2.3.*",
"symfony/swiftmailer-bundle": "2.3.*",
"symfony/monolog-bundle": "2.3.*",
"sensio/distribution-bundle": "2.3.*",
"sensio/framework-extra-bundle": "2.3.*",
"sensio/generator-bundle": "2.3.*",
"incenteev/composer-parameter-handler": "~2.0",
"genemu/form-bundle": "2.1.*",
"jms/security-extra-bundle": "1.5.*",
"jms/di-extra-bundle": "1.4.*",
"phpunit/phpunit": "3.7.*",
"doctrine/data-fixtures": "@dev",
"friendsofsymfony/user-bundle": "~2.0@dev",
"stof/doctrine-extensions-bundle": "dev-master",
"knplabs/gaufrette": "0.2.*@dev",
"knplabs/knp-gaufrette-bundle": "dev-master",
"jms/serializer-bundle": "0.13.*@dev",
"amazonwebservices/aws-sdk-for-php": "dev-master",
"punkave/symfony2-file-uploader-bundle": "dev-master",
"oneup/uploader-bundle": "dev-master",
"knplabs/knp-paginator-bundle": "dev-master",
"jms/debugging-bundle": "dev-master",
"winzou/console-bundle": "dev-master",
"elao/web-profiler-extra-bundle" : "dev-master",
"cybernox/amazon-webservices-bundle": ">=1.5.4",
"genemu/form-bundle": "2.2.*",
"escapestudios/wsse-authentication-bundle": "2.3.x-dev",
"rezzza/flickr-bundle": "1.0.*@dev",
"knplabs/knp-menu-bundle": "dev-master",
"genemu/form-bundle": "2.1.*",
"leaseweb/api-caller-bundle": "*",
"eo/honeypot-bundle": "dev-master"
},
"scripts": {
"post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],
"post-update-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
]
},
"config": {
"bin-dir": "bin"
},
"minimum-stability": "alpha",
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web",
"incenteev-parameters": {
"file": "app/config/parameters.yml"
},
"branch-alias": {
"dev-master": "2.3-dev"
}
}
}
和我的菜单生成器:
namespace ...\Menu;
use Knp\Menu\Matcher\Matcher;
use Knp\Menu\MenuFactory;
use Knp\Menu\Renderer\ListRenderer;
use Symfony\Component\DependencyInjection\ContainerAware;
class Builder extends ContainerAware
{
public function mainMenu(MenuFactory $factory, array $options)
{
$menu = $factory->createItem('root');
$menu->addChild('Dashboard', array(
'route' => 'dashboard' ));
$menu->addChild('Color Scheme', array(
'uri' => 'slidescheme' ));
$menu->addChild('Questionnnaires', array(
'uri' => 'questionnaire_manage' ));
// ... add more children
return $menu;
}
}
在开发过程中更新您的symfony版本不是一个好主意。 实际上,升级代码中使用的任何捆绑包都是一个坏主意(总是有例外,但这是一般规则)。
对于您而言,该软件包已在此新版本中进行了重构,因此现在它与您编写的代码不兼容。 恐怕您只有两种选择:
如果您已经编写了很多行代码,我强烈建议您使用第二种方法。
问题是您使用的是knplabs / menu的开发版本。 从以下位置编辑您的作曲家文件:
"knplabs/knp-menu-bundle": "dev-master",
至:
"knplabs/knp-menu-bundle" : "~1.1",
错误消息将消失。 请注意,如果您实际上使用的是knplabs / menu的开发功能(例如Matcher
和Voter
),这些功能将不再可用。 但是,Symfony并不需要它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.