在我的扩展中,我正在使用tx_news扩展的backendUtility Hook。它适用于TYPO3的普及版本。
/**
* @param array|string $params
* @param array $reference
* @return void
*/
public function updateFlexforms(&$params, &$reference) {
if ($params['selectedView'] === 'News->calendar') {
$removedFields = $this->removedFieldsInCalendarView;
$this->deleteFromStructure($dataStructure, $removedFields);
}
}
在TYPO3 8.3和8.4中,我收到以下警告:
1:PHP警告:\ Foo \ BarBackendUtility :: updateFlexforms(& $ params,& $ reference)的声明应与GeorgRinger \ News \ Hooks \ BackendUtility :: updateFlexforms(array& $ dataStructure,array)兼容$ row /to/BackendUtility.php第0行
由于它是一个钩子,它需要这些参数参数和参考,我无法将其更改为原始函数的参数。这也会导致问题。
我在这里缺少什么?
答案 0 :(得分:1)
只需将updateFlexform方法重命名为其他名称即可。
问题是因为php7
答案 1 :(得分:1)
第一个答案和同一主题中的评论(均由Georg Ringer合并)导致了解决方案:
/**
* @param array $params
* @param array $reference
* @return void
*/
public function updateFlexformsDatedNews(&$params, &$reference) {
if ($params['selectedView'] === 'News->calendar') {
$removedFields = $this->removedFieldsInCalendarView;
$this->deleteFromStructure($params['dataStructure'], $removedFields);
}
}
这适用于PHP5.6和7.0
答案 2 :(得分:0)
这是PHP Warrnig消息,在TYPO3 8核心updateFlexforms()
函数中的Becaue传递了两个带有always类型数组的参数。您需要在此函数中传递数组值。