2013-05-14 33 views
0

我有一个名为Menu的扩展名,它需要中文件夹的帮助。如何在TYPO3中包含扩展的外部类?

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

我想用它在我的控制器是这样的:

public function listAction() { 

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

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

哪个TYPO3版本?使用定义的名称或命名空间有几种方法。 – Merec 2013-05-14 10:28:45

+0

版本为6.1.0 – user2354302 2013-05-14 10:33:58

回答

1

如果将一个类目录yourExt/Classes/Helper/NestedDirectory/MenuHelper.php你有两种方法可以在所有其他extbase文件的类。

与TYPO3第一种方式> 6.0:使用命名空间

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

class MenuHelper { 
} 

?> 

现在,你可以简单地通过使用

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

使用

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

或使这个类的一个实例

第二种方式与TYPO3 < = 4.7

<?php 

class Tx_YourExtension_Helper_NestedDirectory_MenuHelper { 
} 

?> 

现在,你可以简单地通过使用

$menuHelper = new Tx_YourExtension_Helper_NestedDirectory_MenuHelper(); 

类的名称让使用

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

或这个类的一个实例引导类加载器到源文件的正确路径。该文件具有该类所具有的相同名称是非常重要的。

+0

非常感谢。这工作,并对迟到的回应感到抱歉:) – user2354302 2013-05-21 05:51:59