问题描述
我在一个项目中使用 Symfony 4.4,我需要使用 stfalcontinymce。由于我使用的是 SF4,因此我使用 need 2.4 版。所以我这样做了:
composer require stfalcon/tinymce-bundle=2.4
但后来我收到此错误:
!! 11:03:44 CRITICAL [PHP] Uncaught Error: Class 'Twig_Extension' not found ["exception" => Error { …}]
!!
!! In StfalconTinymceExtension.PHP line 13:
!!
!! Attempted to load class "Twig_Extension" from the global namespace.
!! Did you forget a "use" statement?
有人告诉我是因为这个版本和Twig 3不兼容所以我需要降级我的Twig版本。然后我这样做是为了降级 Twig:
composer require twig/twig=2
但后来我收到此错误:
13:14:07 CRITICAL [PHP] Uncaught Error: Call to undefined method Twig\Environment::registerUndefinedTokenPa
rserCallback() ["exception" => Error { …}]
!!
!! In srcApp_KernelDevDebugContainer.PHP line 2040:
!!
!! Attempted to call an undefined method named "registerUndefinedTokenParserCallback" of class "Twig\Environm ent".
!! Did you mean to call e.g. "registerUndefinedFilterCallback" or "registerUndefinedFunctionCallback"?
我尝试在 composer.json 中添加
"twig/extensions": "*"
然后composer install,然后运行命令:
composer require stfalcon/tinymce-bundle=2.4 -W
我收到此错误:
!! 13:49:04 CRITICAL [PHP] Uncaught Error: Call to undefined method
Twig\Environment::registerUndefinedTokenParserCallback() ["exception" => Error { …}]
!!
!! In srcApp_KernelDevDebugContainer.PHP line 2045:
!!
!! Attempted to call an undefined method named "registerUndefinedTokenParserCallback" of class "Twig\Environment".
!! Did you mean to call e.g. "registerUndefinedFilterCallback" or "registerUndefinedFunctionCallback"?
我真的迷路了。有人可以帮忙吗?谢谢
解决方法
您执行的命令在我的系统上似乎根本不可能,因为会存在版本约束冲突。
与其将依赖项限制为一个版本,不如使用约束。
您在 composer.json
中的需求可能包含以下内容
"twig/twig": "^2","stfalcon/tinymce-bundle": "2.4.*","twig/extra-bundle": "^2"
约束解释document。但 ^2
基本上意味着 >= 2.x.x and < 3.0.0
对于tinymce bundle,我使用了上面的,因为这个here
此外,twig/extensions
似乎已被弃用,GitHub issue 提到 twig/extra-bundle
是需要的,可能是它的替代品。