提问人:Gigs 提问时间:2/10/2020 更新时间:2/10/2020 访问量:369
Twig Gravatar发表在《Symfony 4》
Twig Gravatar on Symfony 4
问:
我是 Symfony 的新手,在我的项目中集成“ry167/twig-gravatar”包时遇到了问题。
首先,我做到了:
$ composer require ry167/twig-gravatar 3.0.0
在我修改了我的services.yaml之后,它看起来像这样:
services:
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
App\:
resource: '../src/*'
exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
App\Controller\:
resource: '../src/Controller'
tags: ['controller.service_arguments']
twig.extension.gravatar:
class: \TwigGravatar
arguments:
$default: ~ e.g. 'monsterid'
$size: ~ e.g. 50
$filterPrefix: ~ e.g. 'foo'
$rating: ~ e.g. 'x'
$useHttps: true
tags:
- { name: twig.extension }
最后,我的观点是这样的:
<p>{{ '[email protected]'|grAvatar }}</p>
但是我收到了这个错误:
无效的服务“twig.extension.gravatar”:加载“TwigGravatar”时找不到类“Twig_Extension”
有什么想法吗?我不明白我的问题从何而来......
答:
4赞
Franz Zieris
2/10/2020
#1
您可能使用 Twig 3.*,它删除了所有 PSR-0 类(带有下划线)。
下一版本修复了该问题。
已经有一个候选版本。ry167/twig-gravatar
选项 1:等待下一个稳定版本
如果你想等待稳定版本,那么暂时给你添加一个块,以使用3.0之前的最新Twig版本:conflict
composer.json
{
...
"require": {
...
"ry167/twig-gravatar": "^3.0.0",
...
},
"conflict": {
"twig/twig": ">=3.0"
}
}
之后运行,让 Composer 完成找出依赖项并降级 Twig 版本的工作。composer update
当 4.0 版发布并将依赖项更改为 时,您可以删除 。conflict
^4.0.0
选项 2:使用候选发布版
如果你想立即使用新版本,你必须告诉作曲家,使用稳定性标志的非稳定版本是可以的。
composer require ry167/twig-gravatar "^4.0.0@RC"
评论
0赞
Gigs
2/10/2020
弗朗茨,谢谢你的回答!我理解这个问题,但我不确定我应该如何使用此扩展程序。我试图将我的作曲家更改为使用旧版本的 Twig(composer req twig/twig:“^2.12”),但我仍然有相同的错误消息。你有什么想法吗?
0赞
Franz Zieris
2/10/2020
你能检查实际安装的是哪个 Twig 版本吗?跑。composer info twig/twig
0赞
Cerad
2/10/2020
@CrisMenna 尝试在 Symfony 框架应用程序中回滚 twig 版本确实非常具有挑战性。我会在答案中尝试 rc 版本或切换到另一个库。
0赞
Gigs
2/10/2020
@FranzZieris你很善良!谢谢!Twig 版本为:v3.0.1。对不起,我是一个非常初学者......所以我现在可以使用 rc 版本了吗?我该怎么做?我试过运行 $ composer require ry167/twig-gravatar 4.0.0,但它并没有真正起作用(我知道这是因为它没有发布)。
0赞
Franz Zieris
2/10/2020
@CrisMenna 不客气。我在答案中添加了第二个选项,显示如何在 composer 中使用候选版本。
评论