Symfony 3 Twig\Extension\AbstractExtension 在生产模式下未找到错误

2023-12-03

我有一个在开发模式下运行良好的应用程序,但是当我在生产中运行它时会弹出:

Fatal error: Class 'Twig\Extension\AbstractExtension' not found in C:\Users\wackm\PhpstormProjects\poem\vendor\symfony\symfony\src\Symfony\Bridge\Twig\Extension\LogoutUrlExtension.php on line 23

我猜这与我的自定义树枝扩展有关:

<?php
// src/AppBundle/Twig/VersionExtension.php
namespace AppBundle\Twig;

use AppBundle\Entity\Version;
use PhpOffice\PhpSpreadsheet\Calculation\DateTime;

/**
 * Class VersionExtension - converts versions to readable HTML.
 * @package AppBundle\Twig
 */
class VersionExtension extends \Twig_Extension
{
    /**
     * Defines the function name for use in twig templates.
     * @return array
     */
    public function getFunctions()
    {
        return array(
            new \Twig_SimpleFunction('version', array($this, 'versionFunction')),
        );
    }

    /**
     * Actual function that converts a Version object into a HTML string.
     *
     * Indent indents the associated entities within each other, but NOT
     * the individual items, it does this by incrementing in 0.5 and truncating
     * $indent with intval()
     * @param array $hydrated_entity
     * @param string $title
     * @param indent
     * @return string
     */
    public function versionFunction($hydrated_entity, $title = null, $indent = 0)
    {
        $result_html = '';
        if (!empty($hydrated_entity) and $title != null) {
            $result_html .= '<div style="text-indent:' . (intval($indent) * 20) . 'px"><strong>' . $title . '</strong></div>';
        }
        foreach ($hydrated_entity as $key => $value) {
            // Ignore meta attributes.
            if (in_array($key, array("ID", "Updated At", "Created At"))) {
                continue;
            }

            if (is_array($value)) {
                $result_html .= $this->versionFunction($value, $key, ($indent + 0.5));
            } else {
                $value = $this->tidyValue($value);
                if ($this->startsWith($key, "added_")) {
                    $result_html .= '<div class="bg-success" style="text-indent:' . (intval($indent) * 20) . 'px">' . explode("_", $key)[1] . ': ' . '<p>' . $value . '</p>' . '</div>';
                } else if ($this->startsWith($key, "removed_")) {
                    $result_html .= '<div class="bg-danger" style="text-indent:' . (intval($indent) * 20) . 'px">' . explode("_", $key)[1] . ': ' . '<p>' . $value . '</p>' . '</div>';
                } else {
                    $result_html .= '<div class="bg-info" style="text-indent:' . (intval($indent) * 20) . 'px">' . $key . ': ' . '<p>' . $value . '</p>' . '</div>';
                }
            }
        }
        return $result_html;
    }

    /**
     * Tidies up value for display.
     * @param $value
     * @return string
     */
    private function tidyValue($value)
    {
        // Convert DateTime to String.
        if ($value instanceof \DateTime) {
            $value = $value->format('Y-m-d');
        } else if (is_bool($value)) {
            $value = ($value) ? 'true' : 'false';
        } else if (is_string($value)) {
            //Remove extra <p> tags if present.
            $value = preg_replace('!^<p>(.*?)</p>$!i', '$1', $value);
        }
        return $value;
    }

    /**
     * Checks whether a string begins with a another string.
     * @param $haystack
     * @param $needle
     * @return bool
     */
    private function startsWith($haystack, $needle)
    {
        $length = strlen($needle);
        return (substr($haystack, 0, $length) === $needle);
    }
}

扩展是否应该扩展除LogoutUrlExtension.php?它试图扩展这似乎是一个奇怪的文件。 PHPStorm 警告我\Twig_Extension有多个定义,所以我认为这是相关的。

我正在使用 Twig 1.8。

任何人都可以提供任何见解吗?

Edit:

作曲家.json:

{
  "name": "symfony/framework-standard-edition",
  "license": "MIT",
  "type": "project",
  "description": "The \"Symfony Standard Edition\" distribution",
  "minimum-stability": "dev",
  "prefer-stable": true,
  "autoload": {
    "psr-4": {
      "": "src/"
    },
    "classmap": [
      "app/AppKernel.php",
      "app/AppCache.php"
    ]
  },
  "autoload-dev": {
    "psr-4": {
      "Tests\\": "tests/"
    }
  },
  "require": {
    "php": "7.0.0",
    "symfony/symfony": "3.2.*",
    "doctrine/orm": "^2.5",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/doctrine-cache-bundle": "^1.2",
    "symfony/swiftmailer-bundle": "^2.3",
    "symfony/monolog-bundle": "^2.8",
    "symfony/polyfill-apcu": "^1.0",
    "sensio/distribution-bundle": "^5.0",
    "sensio/framework-extra-bundle": "^3.0.2",
    "incenteev/composer-parameter-handler": "^2.0",
    "doctrine/doctrine-fixtures-bundle": "2.3.0",
    "symfony/assetic-bundle": "v2.8.0",
    "twig/twig": "1.*",
    "components/jquery": "3.1.1",
    "friendsofsymfony/user-bundle": "~2.0.0-beta2",
    "fr3d/ldap-bundle": "3.0.*@dev",
    "doctrine/doctrine-migrations-bundle": "^1.0",
    "symfony/console": "^3.2",
    "phpoffice/phpexcel": "^1.8",
    "waldo/datatable-bundle": "^4.0"
  },
  "require-dev": {
    "sensio/generator-bundle": "^3.0",
    "symfony/phpunit-bridge": "^3.0",
    "liip/functional-test-bundle": "^1.6",
    "phpunit/phpunit": "5.7"
  },
  "scripts": {
    "symfony-scripts": [
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
    ],
    "post-install-cmd": [
      "@symfony-scripts"
    ],
    "post-update-cmd": [
      "@symfony-scripts"
    ]
  },
  "config": {
    "platform": {
      "php": "7.0.0"
    }
  },
  "extra": {
    "symfony-app-dir": "app",
    "symfony-bin-dir": "bin",
    "symfony-var-dir": "var",
    "symfony-web-dir": "web",
    "symfony-tests-dir": "tests",
    "symfony-assets-install": "relative",
    "incenteev-parameters": {
      "file": "app/config/parameters.yml"
    },
    "branch-alias": {
      "dev-master": "3.1-dev"
    }
  }
}

Symfony\Bridge\Twig\Extension\LogoutUrlExtension延伸Twig\Extension\AbstractExtension\AbstractExtension(这对你来说似乎缺失了)。

该文件是twig/extensions包,所以composer require twig/extensions应该到窍门。

Why twig/extensions我不知道 Symfony Twig Bridge 不需要。 (这requires部分关于packagist.org仅提及twig/twig)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony 3 Twig\Extension\AbstractExtension 在生产模式下未找到错误 的相关文章

  • 清理货币字符串的快速方法[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 取消货币格式 https stackoverflow com questions 5139793 php unformat money 如何去掉所有不是数字或点的东西 替换 with 使用轻正
  • 如何扩展 Joomla!到我的自定义 PHP 文件

    我有一个我创建的 php 文件 我想扩展所有的 Joomla 类到该文件 或者我至少希望能够使用 Joomla 的类来访问我的 PHP 文件中的数据库 我怎样才能以这种方式扩展功能 提前致谢 将这些行放在 php 文件的顶部 define
  • 获取URL查询字符串参数

    从格式如下的 URL 查询字符串获取参数的 所需代码较少 的方法是什么 www mysite com category subcategory myqueryhash 输出应该是 myqueryhash 我知道这种方法 www mysite
  • Tortoise SVN 合并“@### 必须与 @### 有祖先关系”错误

    背景故事 找到了一份入门级 Web 开发人员的工作 当我开始工作时 首席开发人员就离开了 一切责任都在我身上 没用过SVN 盲目进去 Problem 我不断收到类似错误 svn svn svn xxx project name branch
  • “imagecolorat”和透明度

    如何才能获得透明度上一个像素的值image imagecolorat 仅选取图像中指定位置的像素颜色索引 通过该索引 我可以获取 RGB 值 但不能获取透明值 希望您理解 并提前感谢您 解决方案可能如下 colorIndex imageco
  • PHP - 按后退按钮时 Session_Destroy

    这是我的问题 我有一个名为login php 的登录页面 不包含HTML 代码 当用户正确输入其凭据时 他会被重定向到特定页面 在本例中我们将使用 test php 该页面上的唯一链接会注销当前会话 并将用户返回到index html 我的
  • 在 Laravel 上将百万行数据从一个数据库复制到另一个数据库

    使用 Laravel Eloquent 我从旧 Mysql 数据库的一张表中复制 700 万行数据 并将这些行放在新 Mysql 数据库的不同表中 问题是 执行此操作花费了几乎一天的时间 并且我需要对近 80M 行重新执行此操作 我一次使用
  • 如何从继承的方法中获取派生类的路径?

    如何从继承的方法中获取当前类的路径 我有以下内容 and
  • 如何在自定义短代码中获取 WooCommerce 产品对象以避免错误

    我有一个函数 我试图使用产品 id 获取当前产品的产品简短描述 但我不断收到未捕获错误 调用成员函数 get short description on bool in 我有以下简码函数 我试图使用产品 ID 获取当前 WooCommerce
  • 将选定的日期值从 datepicker 传递到 php

    我在这里发现了类似的问题 但大多数解决方案对我不起作用 我有一个带有日期选择器的表单 我想将所选日期传递到我的 php 文件 但它似乎不起作用 我的 html 是这样的
  • 在 TCPDF 中,这个 getAliasNbPages 返回值 {:ptp:} 那么我怎样才能获得整数

    在 TCPDF 中 此函数显示值 ptp 那么我如何获得整数 所以请帮助我 我需要这个值 因为我需要应用一些条件 我有很多检查过的文档 但我找不到解决方案 你只能得到一个alias因为直到文档结束时您才知道总页数 TCPDF 替换占位符别名
  • 对于MySQL查询中的每个结果,推送到数组(复杂)

    好吧 这就是我想做的 我正在运行 MySQL 查询来获取最新的帖子 对于每个返回的行 我需要将行的 ID 推送到数组 然后在数组的该 ID 内 我需要从行中添加更多数据 多维数组 到目前为止 这是我的代码 query SELECT FROM
  • 在codeigniter中处理存储过程输出参数

    我在 mysql 中有一个带有输出参数的存储过程 我需要将结果发送到使用 codeigniter 的 php 寄存器模式 public function registerUser data sql call register new use
  • 将大数字转换为字母(然后再转换回来)

    是否有一个术语来描述将大数字存储为字母的想法 例如 假设我有 相对较小的 数字 138201162401719 并且我想将字符数缩小到尽可能少的字符数 我知道这无助于节省磁盘空间 英文字母表中有 26 个字母 但我将它们算作 25 个 因为
  • 使用准备好的语句的 SQL ORDER BY

    我已经尝试了该代码的所有不同类型的变体 但无法使其工作 任何人都可以指出我正确的方向吗 if isset GET s And isset GET o if strip tags htmlspecialchars GET s s sortin
  • 如何在没有 SSH 的情况下安装/使用 Composer

    伙计们 我有一个共享主机 我无法使用 SSH 或使用 php 调用 shell shell exec 出于安全原因 我无法因资金问题升级我的服务器 但我需要安装Composer 并使用 SDK 来完成我的项目 有什么方法可以安装 使用com
  • 在 CGI 模式下运行时如何覆盖 PHP 配置

    有一些教程告诉我如何在 CGI 模式下运行时覆盖 PHP 配置 但我仍然很困惑 因为很多人都认为服务器运行在 Linux 上 虽然我需要这样做also在 Windows 上 我的主机确实使用 Linux 但我的本地开发计算机使用 Windo
  • 会话变量从 while 循环发送特定变量

    我有这个简单的while 循环它从 mysql 查询中检索数据并在我的主页上显示几个链接 我想避免使用 php get 函数并将查询字符串添加到我的网址中 我正在考虑使用会话变量 但我需要帮助 而且我很确定这是无法完成的 当访问者单击 wh
  • 如何从视图中使用模型函数? - 拉拉维尔 5.4

    我在模型类中创建了一个函数 它是 public function scopetest query return query gt pluck name 我的控制器代码是 public function index books Book al
  • wordpressfunctions.php - 为每个帖子类别使用不同的页面模板

    我想连接到 save post 函数 找出帖子所属的类别 然后为每个类别中的帖子分配不同的页面模板 我已经尝试了大约 30 个不同的版本 但都没有成功 有人可以帮我指出正确的方向吗 add action save post assign c

随机推荐

  • 如何选择和排序不在 Group By SQL 语句中的列 - Oracle

    我有以下声明 SELECT IMPORTID Region RefObligor SUM NOTIONAL AS SUM NOTIONAL From Positions Where ID importID GROUP BY IMPORTID
  • Google App Engine:如何将大文件写入 Google 云存储

    我正在尝试将大文件从 Google App Engine Blobstore 保存到 Google Cloud Storage 以方便备份 它对于小文件 My code PATH gs backupbucket for df in Docu
  • (全功能)长轮询服务器如何抽象地工作

    由于您使用的是事件循环而不是线程 那么实际的服务器看起来如何 我知道它使用事件循环 但是如何分离请求 如何防止服务器运行速度极慢 我认为它是无线程的 一次只能推送一件事 某种伪代码会很棒 原谅我的无知 当然 如果有地方用非基本的方式解释它
  • 我的 java App Engine 托管 VM 版本在 2015 年 4 月 14 日更新后未部署

    我的 java App Engine 托管虚拟机构建不再使用以下方式进行部署gcloud preview app deploy target myapp SNAPSHOT我明白了 ERROR Found no valid App Engin
  • PyCharm 运行速度很慢

    我是以下的忠实粉丝JetBrains 的 PyCharm但我确实遇到了一些我想也许我会在这里问的问题 它意外挂起 并且这种情况经常发生 总的来说 它对我来说有点慢 我希望获得一些关于如何提高 IDE 性能的提示 通常 当我打开项目时 PyC
  • MongoDB 分片集群中的文档计数错误

    我有一个使用 MongoDB 4 2 的包含三个分片的集群 我有一个集合 用户 before可以检查分片有600000个文档 mongos gt db users count 600000 接下来 我使用常用 命令对其进行分片 第一个数据库
  • Flutter:使用 Dart 检查设备可用存储空间

    如何检查设备存储是否可以在 Flutter 中执行而无需本地执行 我想知道设备是否有足够的存储空间来下载图像 如何实现这一目标 有一个包叫磁盘空间这使您能够准确地获得您正在寻找的信息 你可以这样使用它 import package disk
  • bat 文件替换文本文件中的字符串

    这个问题在 stackoverflow 上被问了很多 但我似乎无法让它发挥作用 任何提示表示赞赏 这是一个文本文件 扩展名 mpl 其中包含需要删除的违规文本 plotsetup ps plotoutput plotfile eps plo
  • 如何确定RNN中神经元的数量?

    我是 RNN 新手 并试图理解它们 由于它需要输入序列 那么神经元的数量应该与序列的大小相同 对吧 那么 如果我们有 10 个时间步长 因此有 10 个不同的输入 那么我们应该有 10 个神经元 对吗 另外 神经元的数量会随着时间的增加而增
  • 如何在 python 中将图像块传输到特定图像的区域内?

    我正在制作一个游戏 我需要将我的对象复制到特定图像的区域内 我不想需要我的表面来传输这些图像 是否可以 我使用的是pygame 如果您能更好地解释您正在尝试做什么 那么将来会更好 因为它会给您更多答案 根据我的理解 你想将一个图像传输到另一
  • 将通过HTTP上传到ASP.NET的文件进一步上传到C#中的FTP服务器

    上传表格
  • jquery ajax 切断 IE 中的响应

    我正在使用jquery 表单插件它使用 jquery ajax 来完成大部分工作 我们有jquery 1 7 2 我们使用它通过 ajax 向服务器发送表单 并返回指示成功的值或返回带有验证错误的表单 我让它在 Firefox 和 Chro
  • Java BigDecimal 三角方法

    我正在开发一个数学解析器 它能够像这样评估字符串 5 b sqrt c 2 我正在使用 ANTLR 进行解析并取得了良好的进展 现在我迷上了Java课程BigDecimal并想 嘿 为什么不考虑这里的精度呢 我的问题是 Java API 没
  • 在 Django 中,如何检查用户是否属于某个组?

    我在 Django 的管理站点中创建了一个自定义组 在我的代码中 我想检查用户是否属于该组 我怎么做 Your User对象链接到Group对象通过一个多对多关系 您可以因此应用filter方法用户组 因此 要检查给定用户是否属于某个组 例
  • 检查迭代器是否有效

    有没有什么方法可以检查迭代器 无论是来自向量 列表 双端队列 是否 仍然 可取消引用 即尚未失效 我一直在使用try catch 但是有没有更直接的方法来做到这一点 示例 这不起作用 list
  • C# 定时器和内存泄漏

    我正在创建一个程序 每 2 秒检查一次目录列表 我希望这个程序能够运行数月而不会泄漏内存或需要任何人机交互 下面的程序有内存泄漏 我仍然不确定10K代表什么 这不是间隔 间隔为2k class Program static void Mai
  • ClearCase 中是否有 RTC 等效的“挂起模式”?

    我发现 RTC 中的 暂停更改设置 非常有用 而且由于我们也在使用 ClearCase 数十个用户 我想知道 ClearCase 中是否也提供该功能 如果不是 它可以由 script trigger hook 生成吗 我们使用UCM 我想解
  • 无法在 igraph 上绘制网络

    我的二进制图基于边缘列表 每个顶点都是股 票市场上的一个股票行情 例如 BARC Barclay s net full phase1 graph edgelist full phase1 directed FALSE V net full
  • 检查是否支持 UIGraphicsBeginImageContextWithOptions

    我正在开发一个 iOS 应用程序 它目前仅适用于 iOS 4 因为我多次使用以下方法 UIGraphicsBeginImageContextWithOptions 此方法仅在 iOS 4 中可用 因此我的应用程序当前崩溃 无法在 iPhon
  • Symfony 3 Twig\Extension\AbstractExtension 在生产模式下未找到错误

    我有一个在开发模式下运行良好的应用程序 但是当我在生产中运行它时会弹出 Fatal error Class Twig Extension AbstractExtension not found in C Users wackm Phpsto