私はIDEとしてPHPStormを使用していますが、Netbeansなどの他のIDEでも、以下で説明するのと同じ問題が発生すると思います。
Symfony2のようなフレームワークを使用すると、依存性注入の素晴らしい世界が追加されます。したがって、オブジェクトは、次のスニペットのようなコードを使用して簡単にインスタンス化できます。
$myThingy = $this->get('some_cool_service');
オブジェクトは事前に構成されているため、これは非常に便利です。1つの問題は、基本的にすべてのPHP IDEでオートコンプリートが完全に機能しなくなることです。これは、IDEがget()メソッドが返すタイプを認識していないためです。
オートコンプリートを維持する方法はありますか?たとえば、Controllerの拡張機能を作成することが答えになるでしょうか?例えば:
class MyController extends Controller {
/**
* @return \MyNamespace\CoolService
*/
public getSomeCoolService() {
return new CoolService();
}
}
次に、アプリケーションコントローラーの場合、Controllerの代わりにMyControllerを基本クラスとして指定しますか?
Factoryクラス、またはその他の可能なメソッドを使用するのはどうですか?