解決策の1つは、library / zend / Tool / Project / Context / Zf内のファイルを編集することだと思います。これらのファイルは、すぐに使用できるプロジェクトに使用されるコンテンツ/構造を提供しているようです。
しかし、それは正しい解決策のようには思えません。さらに、進行中の調査で、ツール(zf.batまたはsh)がphp inculde_path上のすべてのディレクトリをスキャンして、ツールの機能を提供する「マニフェスト」と「プロバイダー」を探していることをすでに知っています。
Zend開発者の1人による開発者向けのZend_Toolの記事で、いくつかのことが明らかになりました。
マニフェスト
必要な数のプロバイダーをバンドルして「ロード」するために使用できます。
プロバイダー
プロバイダーは、使用するCLIコマンドの実際のコンテナーであり、設計は「コントローラー/アクション」の設計に似ています。次を呼び出すことにより、コマンドプロンプトから特定のクラス(コントローラー)のメソッド(アクション)を呼び出すことができます。
zf <method-name> <class-name>
このクラスがZend_Tool_Project_Provider_Abstractを拡張する場合
その後、すぐに使用できるレイアウトの設定をプロバイダーに任せるマニフェストが次の場所にあることがわかりました。
library \ Zend \ Tool \ Project \ Provider \ Manifest.php
このファイルでは、次のプロバイダーがツールに返されます。
public function getProviders()
{
return array(
new Zend_Tool_Project_Provider_Profile(),
new Zend_Tool_Project_Provider_Project(),
new Zend_Tool_Project_Provider_Controller(),
new Zend_Tool_Project_Provider_Action(),
new Zend_Tool_Project_Provider_View(),
new Zend_Tool_Project_Provider_Module(),
new Zend_Tool_Project_Provider_ProjectProvider()
);
}
これらは明らかに利用可能なデフォルトのCLIコマンドです。
さらに、メソッド_getDefaultProfile()のlibrary / Zend / Tool / Project / Provider / Projectにデフォルトで作成される独自のxmlプロジェクトプロファイルを提供することで、作成内容に大きな影響を与えることができることも明らかです。
私が今試していること:
- デフォルトのプロバイダーとデフォルトのマニフェストを自分のものでオーバーライドし、自分のプロジェクトプロバイダーで_getDefaultProfile()をオーバーライドして、いくつかのものをfalseではなくtrueに設定します。
CLIがプロバイダーを受け入れないという問題が発生しています。進捗状況を報告します!