Symfony 4 上的 Twig Gravatar

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>{{ 'example@example.com'|grAvatar }}</p>

但是我得到了这个错误:

无效服务 "twig.extension.gravatar": class "Twig_Extension" 加载时未找到 "TwigGravatar"

有什么想法吗?我不明白我的问题出在哪里...

您可能使用 Twig 3.* 其中 removed all PSR-0 classes(带下划线)。

ry167/twig-gravatar 的下一版本修复了该问题。 已经有 release candidate.

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

如果你想等待稳定版本,那么暂时在你的composer.json中添加一个conflict块以使用3.0之前的最新Twig版本:

{
    ...
    "require": {
       ...
       "ry167/twig-gravatar": "^3.0.0",
       ... 
    },
    "conflict": {
        "twig/twig": ">=3.0"
    }
}

运行 composer update 之后让 Composer 完成确定依赖关系和降级 Twig 版本的工作。

您可以在发布 4.0 版时删除 conflict 并将依赖项更改为 ^4.0.0

选项 2:使用发布候选

如果你想马上使用新版本,你必须告诉 composer 非稳定版本可以使用 stability flags

composer require ry167/twig-gravatar "^4.0.0@RC"