如何在TYPO3中包含扩展的外部类?

时间:2013-05-14 09:33:54

标签: php class typo3

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

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

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

public function listAction() {

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

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

1 个答案:

答案 0 :(得分: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&lt; = 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();

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