2016-07-28 13 views
1

オートロードを使用してエクステンションにクラスを呼び出す方法。私はtypo3 7.6を使用しています。チュートリアルから私は、typo3 7.6ではext_emconf.phpファイルでこれを行うことができると理解しました。 ext_emconf.phpで同じものを書く方法は? 私のクラスファイルはClasses/class.x.phpにあります。オートロード機能typo3 7.6

答えて

4

全てのクラスが自動的に限り、あなたは、コードの規則に従うようオートロード機能に登録されています https://docs.typo3.org/typo3cms/ExtbaseFluidBook/a-CodingGuidelines/Index.html

class.x.phpはExtbaseにクラスのための有効なファイル名ではありません。あなたがClassXを作成したい場合は、ファイル名がなければならない:

/your_extension/Classes/ClassX.php

<?php 

namespace YourName\YourExtension; 

class ClassX { 

} 

拡張名もUpperCamelCaseになっていることに注意してください。ベンダーパート(この例ではYourName)については、PHPで有効なものを選択することができます。

今、あなたはあなたの拡張は明らかに仕事にインストールする必要が

$test = new \YourName\YourExtension\ClassX(); 

であなたクラスにアクセスすることができます。

!!! Typo3は、拡張機能をインストール/アンインストールするときにのみオートロードキャッシュを生成することを覚えておいてください。すでにインストールされている拡張機能に新しいファイルを追加する場合は、デフォルトでは、あなたの拡張機能でext_autoload.phpを作成することができます一致を命名しないでくださいクラスのオートローディングを形作るために手動で

/typo3temp/autoload/autoload_classmap.php 

このキャッシュファイルを削除する必要があります。コードはそのように見える内部:

<?php 

return array(
    'Tx_SomeExtension_Someclass' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('some_extension') . 'pi1/someclass.php', 
); 

を使用すると、TYPO3の7.xのために開発している場合は、時代遅れであり、唯一のパフォーマンスの欠点の多くをもたらし、互換性の拡張機能でサポートされていpibasedに留意してください。私はもうpibasedエクステンションを使用しないことをお勧めします。

+0

本当に役に立ちました。しかし、私はちょっと混乱しています。オートロード機能をエクステンションのext_emconf.phpファイルに書き込む方法です。チュートリアルから私は、 'autoload' => 配列( 'classmap' =>配列( 'Classes') )、オートロード機能をこのフォームで書かなければならないことを発見しました。それは私のクラス名、ClassXですか? – Ques

+0

私の拡張機能は、pibaseの3つの拡張機能に依存しています。だから私の仕事はこれらのクラスに新しいクラスを開発し、これらのクラスをエクステンション内のエクステンションに呼び出す必要があります。手伝っていただけませんか ? – Ques

+1

autoloadファイルの例で自分の投稿を更新しました –

関連する問題