[英]Knp menu bundle warnings after update to symfony 2.3
After updating symfony from 2.2 to 2.3, i've got new stange errors on all my pages and in my scripts: 将symfony从2.2更新到2.3之后,我在所有页面和脚本中出现新的错误:
Deprecated: Knp\\Menu\\Silex\\Voter\\RouteVoter is deprecated because of namespace, use Knp\\Menu\\Matcher\\Voter\\RouteVoter instead. 不建议使用:由于名称空间不建议使用Knp \\ Menu \\ Silex \\ Voter \\ RouteVoter,请改用Knp \\ Menu \\ Matcher \\ Voter \\ RouteVoter。 in \\vendor\\knplabs\\knp-menu\\src\\Knp\\Menu\\Silex\\Voter\\RouteVoter.php on line 20
在第20行的\\ vendor \\ knplabs \\ knp-menu \\ src \\ Knp \\ Menu \\ Silex \\ Voter \\ RouteVoter.php中
and 和
Deprecated: Knp\\Menu\\Silex\\RoutingExtension is deprecated, use Knp\\Menu\\Integration\\Symfony\\RoutingExtension instead. 不推荐使用:不推荐使用Knp \\ Menu \\ Silex \\ RoutingExtension,请改用Knp \\ Menu \\ Integration \\ Symfony \\ RoutingExtension。 in \\vendor\\knplabs\\knp-menu\\src\\Knp\\Menu\\Silex\\RoutingExtension.php on line 15
在第15行的\\ vendor \\ knplabs \\ knp-menu \\ src \\ Knp \\ Menu \\ Silex \\ RoutingExtension.php中
How could I fix this ? 我该如何解决? I don't find the answer on the web.
我在网络上找不到答案。
Thank you in advance 先感谢您
Here is my composer.json : 这是我的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"
}
}
}
and my menu builder: 和我的菜单生成器:
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;
}
}
It's not a good idea update your symfony version in the middle of a develpment. 在开发过程中更新您的symfony版本不是一个好主意。 Actually, it's a bad idea upgrade any bundle you are using in your code (there's always exceptions, but this is the general rule).
实际上,升级代码中使用的任何捆绑包都是一个坏主意(总是有例外,但这是一般规则)。
In your case, the bundle has been refactored in this new version, so now it's not compatible with the code you have written . 对于您而言,该软件包已在此新版本中进行了重构,因此现在它与您编写的代码不兼容。 I'm afraid you only have two alternatives:
恐怕您只有两种选择:
I strongly suggest the second option if you already have many lines of code written. 如果您已经编写了很多行代码,我强烈建议您使用第二种方法。
The issue is that you're using a dev version of knplabs/menu. 问题是您使用的是knplabs / menu的开发版本。 Edit your composer file from:
从以下位置编辑您的作曲家文件:
"knplabs/knp-menu-bundle": "dev-master",
to: 至:
"knplabs/knp-menu-bundle" : "~1.1",
and the error message will go away. 错误消息将消失。 Note that if you're actually using dev features of knplabs/menu (like
Matcher
and Voter
) those won't be available any more. 请注意,如果您实际上使用的是knplabs / menu的开发功能(例如
Matcher
和Voter
),这些功能将不再可用。 But Symfony does not require them anyway. 但是,Symfony并不需要它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.