TYPO3 8.2:ViewHelper 命名空间
TYPO3 8.2: ViewHelper Namespace
我尝试在 TYPO3 扩展中创建多个 ViewHelper。
<?php
namespace PdvPolymer\ViewHelpers;
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
class ButtonUpViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper
{...
ViewHelper 位于目录 extension\Classes\ViewHelpers.
当我调用它时效果很好:
<div xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers" xmlns:p="http://typo3.org/ns/Extension/ViewHelpers">
<p:buttonUp></p:buttonUp>
</div>
但现在我尝试将 ViewHelper 放在子目录中,例如
extension\Classes\ViewHelpers\自定义.
ViewHelper 的新命名空间现在是:
namespace Extension\ViewHelpers\Custom;
现在我调用 ViewHelper:
<p:custom.buttonUp></p:custom.buttonUp>
...并得到如下错误:
Oops, an error occurred! Code: 2016091908135339232bbd
我的问题是,我做错了什么?
TYPO3 中的内部 Fluid-Extension 和我一样。
我查过了!
有人有想法吗?
有 2 个不同的问题。
首先,我建议避免在命名空间声明中使用子目录,而只使用 xmlns:p="http://typo3.org/ns/Extension/ViewHelpers"
。在模板中调用 ViewHelper 时始终添加子目录路径,例如
<p:custom.buttonUp></p:custom.buttonUp>
您不需要声明两次。
2)关于错误处理
使用 TypoScript config.contentObjectExceptionHandler = 0
为您的开发系统关闭它,您将看到更有用的消息。您可以在 docs.
中找到更多信息
我尝试在 TYPO3 扩展中创建多个 ViewHelper。
<?php
namespace PdvPolymer\ViewHelpers;
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
class ButtonUpViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper
{...
ViewHelper 位于目录 extension\Classes\ViewHelpers.
当我调用它时效果很好:
<div xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers" xmlns:p="http://typo3.org/ns/Extension/ViewHelpers">
<p:buttonUp></p:buttonUp>
</div>
但现在我尝试将 ViewHelper 放在子目录中,例如 extension\Classes\ViewHelpers\自定义.
ViewHelper 的新命名空间现在是:
namespace Extension\ViewHelpers\Custom;
现在我调用 ViewHelper:
<p:custom.buttonUp></p:custom.buttonUp>
...并得到如下错误:
Oops, an error occurred! Code: 2016091908135339232bbd
我的问题是,我做错了什么? TYPO3 中的内部 Fluid-Extension 和我一样。 我查过了!
有人有想法吗?
有 2 个不同的问题。
首先,我建议避免在命名空间声明中使用子目录,而只使用 xmlns:p="http://typo3.org/ns/Extension/ViewHelpers"
。在模板中调用 ViewHelper 时始终添加子目录路径,例如
<p:custom.buttonUp></p:custom.buttonUp>
您不需要声明两次。
2)关于错误处理
使用 TypoScript config.contentObjectExceptionHandler = 0
为您的开发系统关闭它,您将看到更有用的消息。您可以在 docs.