私はIDEとしてPHP Stormを使用していますが、Netbeansのような他のIDEには以下で説明するような問題があると思います。Symfony2依存性注入でオートコンプリート機能を維持する
Symfony2のようなフレームワークを使用している場合、私たちは素晴らしい依存性注入の世界を追加しました。だから、オブジェクトには、単純に次のコードのようなコードを使用してインスタンス化することができます。
$myThingy = $this->get('some_cool_service');
オブジェクトがすでに事前に設定されているように、これは、非常に便利です。 1つの問題は、IDEがどのタイプのget()メソッドが返ってきているのかわからないため、基本的にどのPHP IDEでも自動補完が完全に中断することです。
自動補完を保存する方法はありますか?たとえばコントローラの拡張を作成するのが答えでしょうか?たとえば、次のように
class MyController extends Controller {
/**
* @return \MyNamespace\CoolService
*/
public getSomeCoolService() {
return new CoolService();
}
}
し、アプリケーションコントローラの代わりに、コントローラの基本クラスとしてMyControllerを指定しますか?
Factoryクラスまたはその他の可能なメソッドの使用についてはどうですか?
オブジェクトがオブジェクトであるか、特定のクラスのオブジェクトであるかわからないという問題はありますか?それが前者なら、$ myThingyをオブジェクトとしてキャストできませんか? – DaveRandom
真実ですが、オブジェクトにキャストしても、クラスのインスタンスの型が意味するところは無限に残ります。つまり、まだ自動ではありません。 - 悲しげに完成。 : –
私と同じもの:http://stackoverflow.com/questions/21936380/best-practise-including-code-completion-in-zf2、同じソリューションだが、すべて余分な作業が必要。 – Gizzmo