2011-07-05 43 views
2

快速的;用於PHP開發的Netbeans 7.0:Netbeans & PHP; class_alias and code-complete

有沒有什麼方法可以告訴NetBeans何時使用class_alias來爲別名別名,從而觸發別名的代碼完成?

class Foo{ 
    public static $hello = 'world'; 
} 

class_alias('Foo', 'Bar'); 

Bar::$h // triggers code completion for $hello 
    ^

我還在努力成爲善於使用NetBeans的工作,並沒有真正起到得多與配置,所以我希望有某種項目的具體配置,我可以修改的。

在此先感謝各位。


有趣的是,我 可以 不能見下文改用命名空間的use雖然我的項目,否則命名空間免費)達到什麼樣的NetBeans將明白:

class Foo{ 
    public static $hello = 'world'; 
} 

use \Foo as Bar; 

Bar::$h // DOES trigger code completion for $hello 
    ^

雖然我不知道這是否可行。我的 Loader類也包含 alias => classname的地圖,當給定的類自動加載時,如果需要,加載方法將搜索地圖和別名。

這是行不通的希望,爲use完全不適合於任何類型的動態混淆的:在一個函數或方法問題

  • 不能在任何範圍內使用比其他全球,use解析錯誤。
  • use不支持動態命名; use \{$class} as {$alias};是非法的。
  • 最重要的是,use沒有通過文件包含,因此呈現它的使用......好吧,沒用。潘-tastic。

回答

2

不,對不起,我不這麼認爲。

我不得不說class_alias對我來說是一個新的!

+0

它是5.3的新的 – Drazisil

+0

是的,它非常有用的視圖生成保持你的助手類名短。 'My_Super_Text_Transformer_Helper'到'TextTrans'是一件美麗的事情:) – Dan

5

我成功地創建了一下這個

一種解決方法在項目的引導,你可以創建別名

class_alias('Some\Namespaced\ClassName', 'aliasName'); 
class_alias('Some\Namespaced\ClassName2', 'anotherAlias'); 

爲了讓Netbeans的把它撿起來,你可以創建一個虛擬文件在您的項目中的某處。 例如。 aliases.php

class aliasName extends \Some\Namespaced\ClassName{} 
class anotherAlias extends \Some\Namespaced\ClassName2{} 

擴展並不直接等同於class_alias但代碼提示的目的,它工作正常。

重要!實際上,不要將此文件包含到您的項目的任何位置,僅僅存在此文件將允許Netbeans生成代碼提示。