Symfony 4.4 未知的 inky_to_html 过滤器

Sel*_*t0r 6 php symfony symfony4

我最近将 Symfony 更新到 4.4(从 4.3)并且我的翻译文件不能再自动更新(使用php bin/console tran:up --force)。弹出的错误是:

In body.html.twig line 1:
Unknown "inky_to_html" filter.
Run Code Online (Sandbox Code Playgroud)

有问题的文件是vendor/symfony/twig-bridge/Resources/views/Email/zurb_2/notification/body.html.twig我从未使用过的,我不知道为什么突然包含它。为了摆脱我试图要求twig/inky-extra但需要 ext-xsl-extension 的消息,我真的不想用我不需要的东西来膨胀我的代码只是为了摆脱与树枝扩展相关的错误这也不需要。

我尝试按照此处所述更改翻译界面的版本,但这也没有任何改变。

我想这与我的项目有关,因为我找不到任何类似的问题,但我无法弄清楚,因此感谢您提供任何帮助。

编辑:这是我的 composer.json,它与创建 Symfony 4.3 项目时生成的基本相同,我只更改了版本名称以按照文档中的描述升级并运行composer update.

{
  "type": "project",
  "license": "proprietary",
  "require": {
    "php": "^7.1.3",
    "ext-ctype": "*",
    "ext-iconv": "*",
    "ext-intl": "*",
    "apy/breadcrumbtrail-bundle": "^1.5",
    "craue/config-bundle": "^2.3",
    "easycorp/easy-log-handler": "^1.0",
    "friendsofsymfony/jsrouting-bundle": "^2.4",
    "league/csv": "^9.4",
    "nesbot/carbon": "^2.25",
    "sensio/framework-extra-bundle": "^5.1",
    "sg/datatablesbundle": "^1.1",
    "symfony/apache-pack": "^1.0",
    "symfony/asset": "^4.0",
    "symfony/console": "^4.0",
    "symfony/dotenv": "^4.0",
    "symfony/expression-language": "^4.0",
    "symfony/flex": "^1.3.1",
    "symfony/form": "^4.0",
    "symfony/framework-bundle": "^4.0",
    "symfony/http-client": "^4.0",
    "symfony/intl": "^4.0",
    "symfony/monolog-bundle": "^3.1",
    "symfony/orm-pack": "*",
    "symfony/process": "^4.0",
    "symfony/security-bundle": "^4.0",
    "symfony/security-csrf": "^4.0",
    "symfony/serializer-pack": "*",
    "symfony/swiftmailer-bundle": "^3.1",
    "symfony/translation": "^4.0",
    "symfony/twig-bundle": "^4.0",
    "symfony/validator": "^4.0",
    "symfony/web-link": "^4.0",
    "symfony/yaml": "^4.0",
    "tetranz/select2entity-bundle": "^3.0"
  },
  "require-dev": {
    "dama/doctrine-test-bundle": "^6.1",
    "doctrine/doctrine-fixtures-bundle": "^3.2",
    "pdepend/pdepend": "^2.5",
    "phpmd/phpmd": "^2.7",
    "phpunit/php-code-coverage": "^7.0",
    "roave/security-advisories": "dev-master",
    "squizlabs/php_codesniffer": "3.*",
    "symfony/debug-pack": "*",
    "symfony/maker-bundle": "^1.0",
    "symfony/phpunit-bridge": "^4.3",
    "symfony/profiler-pack": "*",
    "symfony/test-pack": "*",
    "symfony/web-server-bundle": "^4.0"
  },
  "config": {
    "preferred-install": {
      "*": "dist"
    },
    "sort-packages": true
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "App\\Tests\\": "tests/"
    }
  },
  "replace": {
    "paragonie/random_compat": "2.*",
    "symfony/polyfill-ctype": "*",
    "symfony/polyfill-iconv": "*",
    "symfony/polyfill-php71": "*",
    "symfony/polyfill-php70": "*",
    "symfony/polyfill-php56": "*"
  },
  "scripts": {
    "auto-scripts": {
      "cache:clear": "symfony-cmd",
      "assets:install %PUBLIC_DIR%": "symfony-cmd"
    },
    "post-install-cmd": [
      "@auto-scripts"
    ],
    "post-update-cmd": [
      "@auto-scripts"
    ]
  },
  "conflict": {
    "symfony/symfony": "*"
  },
  "extra": {
    "symfony": {
      "allow-contrib": false,
      "require": "4.4.*"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

fyr*_*rye 4

symfony/twig-bridge:4.4 将开发要求更改为 require twig/inky-extra,还添加了Resources/views/Email使用inky_to_html过滤器的新模板文件,这些文件未包含在 4.3 中。

由于tran:up尝试扫描<Bundle>/Resources/views每个包的目录中的文件进行翻译,为了规避该问题并避免扫描 twig-bridge 视图,您应该能够指定要更新其翻译的包名称。

php bin/console tran:up <locale> <bundle or directory>
Run Code Online (Sandbox Code Playgroud)

除了包含开发要求来规避该问题之外,您还需要恢复到 symfony/symfony:4.3 以摆脱新twig-bridge/Resources/views/Email目录。

由于您使用的是 symfony/symfony:4.4,因此它需要相应的 twig-bridge。

symfony/symfony:4.4 需要[原文如此]

"symfony/twig-bridge": "self.version"
Run Code Online (Sandbox Code Playgroud)

symfony/twig-bridge:4.4 require-dev [原文如此]

"twig/cssinliner-extra": "^2.12",
"twig/inky-extra": "^2.12",
"twig/markdown-extra": "^2.12"
Run Code Online (Sandbox Code Playgroud)

最终,这似乎是一个开发依赖项的错误,应该向 Symfony 报告。


更新: 3.4+版本已发布补丁,请参阅:修复模板包含语法错误时的翻译命令#34711