Twig Gravatar发表在《Symfony 4》

Twig Gravatar on Symfony 4

提问人:Gigs 提问时间:2/10/2020 更新时间:2/10/2020 访问量:369

问:

我是 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”

有什么想法吗?我不明白我的问题从何而来......

php symfony gravatar twig-extension

评论

1赞 Cerad 2/10/2020
检查您的树枝版本。最新版本引入了命名空间Twig_Extension因此现在是 Twig\Extension。您也可以在 vendor/twig 下查看Twig_Extension是否存在。

答:

4赞 Franz Zieris 2/10/2020 #1

您可能使用 Twig 3.*,它删除了所有 PSR-0 类(带有下划线)。

下一版本修复了该问题。 已经有一个候选版本ry167/twig-gravatar

选项 1:等待下一个稳定版本

如果你想等待稳定版本,那么暂时给你添加一个块,以使用3.0之前的最新Twig版本:conflictcomposer.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 中使用候选版本。