(走動)當涉及到Symfony的服務:
而不是
$doctrine = $this->container->get('doctrine');
使用
$doctrine = $this->getDoctrine();
由於你可以看到,Symfony允許你訪問它的大部分服務s直接來自$this
變量。 NetBeans將知道要使用的自動完成。
讓我們看看爲什麼這個工程(控制器類中)
這是可能的,因爲控制器類進口登記類USE語句,
use Doctrine\Bundle\DoctrineBundle\Registry;
,然後在方法註釋註釋它聲明返回對象類型與
/*
* @return Registry
*/
如果您調用$ this-> container-> get('doctrine');直接然後自動完成將被省略,你將不得不使用下面的內容。
(回答)到目前爲止沒有魔法自動完成工作。使用Php Storm(它可以滿足你的要求)。對於那些選擇堅持使用NetBeans的人,您需要使用手動註釋,如下例所示:
我們可以將NetBeans指向它應該用於自動完成的類。
1)從項目目錄中搜索終端服務要導入:
PHP斌/控制檯調試:容器
如果你知道你在尋找什麼用這個代替:
php bin/console d:container | grep的學說
...
學說--------------------------------- ----------------------- 主義\包\ DoctrineBundle \註冊表
...
2)如果不是一個服務使用get_class() PHP構建函數來獲取對象的類名,它是它的特定變量。或者使用反射類。隨你便。
3)一旦你知道更好的可讀性類名聲明USE聲明
use Doctrine\Bundle\DoctrineBundle\Registry;
4)現在文,我們知道什麼是在特定變量的對象實例的類名,我們準備通知NetBeans的約我們通過使用註釋註釋來了解它可以啓用自動完成功能。
/**
* @var $doctrine Registry
*/
$doctrine = $this->container->get('doctrine');
現在自動完成已啓用。鍵入
$doctrine->|
然後按Ctrl +空格鍵。見下圖:
是的,我知道這一點的解決方案,但它沒有什麼,我期待的。我在http://netbeans.org/bugzilla/show_bug.cgi?id=226725 – dextervip 2013-02-26 21:49:47
上打開了一個問題,這也是我所做的+1,儘管一般來說'protected'應該比private更受歡迎,除非(理論上的)兒童班不應該使用吸氣劑有一個特定的原因。 – halfer 2013-02-27 12:05:34