【问题标题】:TYPO3 Fluid: suppress PHP warnings in flashMessagesTYPO3 Fluid:抑制 flashMessages 中的 PHP 警告
【发布时间】:2015-08-03 06:37:44
【问题描述】:

我正在构建一个基于 TYPO3 的网站,我在其中使用来自 TER 的不同扩展。现在两个插件一起使用会产生不良结果:呈现网站中的 PHP 警告。

一个扩展名是tt_products,它通过访问某个数组中未定义的索引来生成消息。另一个扩展名是tkaddress,用于显示消息。

tkaddress 基于流体模板,并使用<f:flashMessages /> 视图助手来显示正确的错误,例如在编辑地址记录时输入的电子邮件地址无效。 不幸的是,其他被忽略的 PHP 警告也会被这个视图助手捕获,它会给出类似

的消息

PHP 警告:/usr/local/www/apache24/data/typo3conf/ext/tt_products/view/class.tx_ttproducts_info_view.php 第 301 行中的非法字符串偏移“名称”

这只发生在实时服务器中。在我的本地开发环境中,我没有收到此类消息。两个扩展的版本是相同的,我无法将问题追溯到它的根源。

(我知道,修复 tt_products 中的错误是正确的方法,但我不想修改它)

在 Fluid 中使用 <f:flashMessages /> 时是否有一些设置可以抑制 PHP 警告?

更新:

开发环境:

  • TYPO3 6.1.5
  • PHP 5.3.28
  • tt_products 2.7.6
  • error_reporting (PHP INI):22519
  • 操作系统:Windows 7

生活环境:

  • TYPO3 6.1.5
  • PHP 5.4.40
  • tt_products 2.7.6
  • error_reporting (PHP INI):22519
  • 操作系统:FreeBSD

所以只有操作系统和 PHP 版本不同。我也找不到与 PHP 或 TYPO3 相关的错误报告设置的区别(两者都将displayErrors 设置为 1)

【问题讨论】:

  • 请向我们提供更多信息,例如您使用的是哪个版本的 tt_products,您是 php 版本(在开发和生产环境中)以及 TYPO3 的版本......
  • @ArekvanSchaijk 添加了系统信息

标签: php typo3 fluid


【解决方案1】:

PHP 版本似乎导致了您的开发环境和生产环境之间的描述差异。我引用;

How do I correct this Illegal String Offset?

但是,此警告消息是 PHP 5.4 的新内容。旧版本没有 警告如果发生这种情况。他们会默默地将'type'转换为0,然后 尝试获取字符串的字符 0(第一个字符)。所以如果这 代码应该可以工作,那是因为滥用这样的字符串 没有引起对 PHP 5.3 及以下版本的任何投诉。 (很多旧的 PHP 代码在升级后遇到了这个问题。)

tt_products

您使用的似乎是tt_products 版本2.7.6

自版本2.7.6 以来,修复了一些错误,包括文件class.tx_ttproducts_info_view.php 中的一些代码更改,这也可能解决您的问题。

尝试将tt_products 更新到版本2.7.17,请参阅:

http://typo3.org/extensions/repository/view/tt_products

如果问题仍然出现在更新版本的扩展程序中,您可以提交您的问题:

https://forge.typo3.org/projects/extension-tt_products

禁止警告

然而,忽略任何警告并不是你看待的正确方式:

TYPO3: how to supress deprecated warnings?

【讨论】:

  • 甚至没有想到是PHP版本差异导致了警告,但是一些显示设置...升级tt_products到2.7.17解决了这个问题!
猜你喜欢
  • 1970-01-01
  • 2017-06-10
  • 2018-08-30
  • 2012-07-13
  • 2020-02-15
  • 2014-01-20
  • 2012-08-13
  • 2023-03-22
  • 1970-01-01
相关资源
最近更新 更多