2016-12-05 10 views
0

私は作者ベースのTYPO3 7.6インストールを持っており、コマンド・コントローラーでExtbase拡張を作成したいとします。コマンド・コントローラーのクラスが自動ロードされない

コントローラはext_localconf.phpに登録されているが、クラスがpublic function getAvailableCommands()

名前空間にtypo3/sysext/extbase/Classes/Mvc/Cli/CommandManager.phpで発見されていないため、commmandコントローラも設定されていません。namespace Foo\FooT3monitoringNotification\Command;
クラスはここClasses/Command/NotificationCommandController.phpです。

私はすべてのTYPO3キャッシュをクリアし、composer dump-autoloadでした。私のクラスが自動ロードされない理由は何か、私がやりたいこと、あるいは私が見つけることができることは何ですか?

+0

で見てくださいあなたの作曲家ディレクトリに生成されたautoload_ * - そこにあなたの名前空間があるはずです。さらに:それはコンポーザベースのインストールですか(私はそう思いますか?))または "クラシック"ですか? – Susi

+0

はい、cmposerベースです。 'vendor/composer/autoload_'のファイルの中に私のクラスについては何もありません。 私のクラスがそこに追加されないことがありますか?エクステンションに 'composer.json'が必要ですか? –

+0

あなたはコントローラにpublic actionCommandを持っていますか? '' 'public doMyTaskCommand()' 'のようなもの? –

答えて

5

新しく作成された拡張機能がコンポーザを使用してインストールされていないため、クラスを探す場所を定義する必要があります。したがって、あなたは(「ないあなたの拡張ではなく、あなたのTYPO3の配布ルートフォルダに意味)ルートcomposer.jsonに自動ロードセクションを追加する必要があります。

"autoload": { 
    "psr-4": { 
     "Foo\\FooT3monitoringNotification\\": "web/typo3conf/ext/foo_t3monitoring_notification/Classes" 
    } 
} 

詳細情報:https://usetypo3.com/typo3-and-composer.html#c67

+0

Thx、それはトリックでした! –

関連する問題