(歩き回っ):
代わりの
$doctrine = $this->container->get('doctrine');
使用
$doctrine = $this->getDoctrine();
として、あなたが見ることができます、Symfonyは、あなたがそのサービスのほとんどにアクセスすることを可能にします直接変数$this
からです。 NetBeansは、使用する自動補完機能を認識します。
これは(コントローラクラス内)を働き、なぜ顔をしていることができます
コントローラクラスの輸入レジストリクラスので
use Doctrine\Bundle\DoctrineBundle\Registry;
し、その後で、USE文で可能ですメソッドの注釈アノテーション返すオブジェクト型を宣言する
/*
* @return Registry
*/
$ this-> container-> get( 'doctrine');をコールすると、それから、自動補完は省略され、あなたは以下のものを使用しなければなりません。
(回答)これまでのマジックオートコンプリートは動作しません。 Php Stormを使用します(あなたが要求するものを実行します)。 NetBeansに固執する人は、以下の例のように手作業による注釈を使用する必要があります。
NetBeansは、自動補完に使用するクラスを指すことができます。インポートするサービスのためのプロジェクトのディレクトリ検索から端末に
1):
PHPのbin /コンソールデバッグ:コンテナ
あなたが使用するため、代わりにこの探して何を知っている場合:
を
php bin/console d:コンテナ| grepの教義
...
教義--------------------------------- ----------------------- 教義\バンドル\ DoctrineBundle \レジストリ
...
2)これがない場合にはサービスの使用get_class() PHPはオブジェクトのクラス名を取得するために関数をビルドします。またはリフレクションクラスを使用します。それはあなた次第です。あなたが読みやすくするために、クラス名宣言USE文を知っていたら
use Doctrine\Bundle\DoctrineBundle\Registry;
4)は今、WENは、我々は我々がNetBeansのを通知する準備ができている特定の変数内のオブジェクトインスタンスのクラス名が何であるかを知っている
3)コメントの注釈を使って自動補完を可能にすることで私たちが知っているもの。
/**
* @var $doctrine Registry
*/
$doctrine = $this->container->get('doctrine');
自動完了が有効になりました。その後、はCtrl +スペースキーを押す
$doctrine->|
を入力します。はい、私はこの解決策を知っているが、それは私が探しています何まだありません
:下の画像を参照してください。 http://netbeans.org/bugzilla/show_bug.cgi?id=226725 – dextervip
でこれを提案する問題を開いた。これは私がやっていることでもあります。一般的に 'protected'は' private'より優先されるべきです(理論上の)子クラスがゲッターを使用すべきではない特定の理由があります。 – halfer