0

我有一个名为的扩展名Menu,它需要MenuHelper文件夹中类的帮助ext/menu/Classes/Helper

如何在我的控制器中使用它?只有当它位于控制器文件夹中时,才能访问“MenuHelper”类。

我想像这样在我的控制器中使用它:

public function listAction() {

        $menugenerators=new MenuHelper(); # Will return something 

        $this->view->assign('menugenerators', $menugenerators);
}
4

1 回答 1

1

如果您将一个类放在目录中,yourExt/Classes/Helper/NestedDirectory/MenuHelper.php您有两种方法可以在所有其他 extbase 文件中获取该类。

TYPO3 > 6.0 的第一种方法:使用命名空间

<?php
namespace YourVendor\YourExtension\Helper\NestedDirectory;

class MenuHelper {
}

?>

现在您可以使用创建此类的实例

$menuHelper = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance("YourVendor\\YourExtension\\Helper\\NestedDirectory\\MenuHelper")

或简单地使用

$menuHelper = new \YourVendor\YourExtension\Helper\NestedDirectory\MenuHelper();

TYPO3 <= 4.7 的第二种方式

<?php

class Tx_YourExtension_Helper_NestedDirectory_MenuHelper {
}

?>

现在您可以使用创建此类的实例

$menuHelper = t3lib_div::makeInstance("Tx_YourExtension_Helper_NestedDirectory_MenuHelper")

或简单地使用

$menuHelper = new Tx_YourExtension_Helper_NestedDirectory_MenuHelper();

类的名称将类加载器引导到源文件的正确路径。文件与类具有相同的名称非常重要。

于 2013-05-14T10:41:07.767 回答