【问题标题】:Symfony 4.4 unknown inky_to_html filterSymfony 4.4 未知的 inky_to_html 过滤器
【发布时间】:2019-11-25 10:41:15
【问题描述】:

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

In body.html.twig line 1:
Unknown "inky_to_html" filter.

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

我尝试按照here 的描述更改翻译接口的版本,但这也没有改变任何东西。

我想这与我的项目有关,因为我找不到任何类似的问题,但我无法弄清楚,因此不胜感激。

编辑: 这是我的composer.json,它与创建Symfony 4.3项目时生成的基本相同,我只是按照docs中的描述将版本名称更改为升级并运行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.*"
    }
  }
}

【问题讨论】:

  • 请发布您的 composer.json 文件。请描述您如何将 Symfony 从 4.3 更新到 4.4。即:composer update symfony/symfony:4.4 或手动更改依赖项并运行composer update

标签: php symfony symfony4


【解决方案1】:

symfony/twig-bridge:4.4 将开发要求更改为需要 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>

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

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

symfony/symfony:4.4 需要 [sic]

"symfony/twig-bridge": "self.version"

symfony/twig-bridge:4.4 require-dev [sic]

"twig/cssinliner-extra": "^2.12",
"twig/inky-extra": "^2.12",
"twig/markdown-extra": "^2.12"

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


更新:已发布 3.4+ 版本的补丁,请参阅:Fix the translation commands when a template contains a syntax error #34711

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 2021-02-20
  • 2018-09-28
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多