2013-04-04 81 views
8

PhalconPHP框架中是否存在任何類型的框架,我可以在Netbeans IDE中使用它來實現自動完成目的?PhalconPHP的IDE自動完成

所有我需要的是具有類/接口聲明的文件堆,像這樣:

namespace \Phalcon; 

class Tag { 

    /** 
    * bla bla bla 
    * ... 
    */ 
    public static function setTitle($title) {} 

    ... 

} 

回答

22

也許你正在找這個?爾康DevTools https://github.com/phalcon/phalcon-devtools/tree/master/ide

+0

非常感謝!這就是我一直在尋找的! – 2013-04-04 14:02:42

+6

在外部庫中添加一個路徑到'phalcon-devtools \ ide \ 1.3.1 \ Phalcon' – Patrioticcow 2014-04-08 18:28:23

+0

對於版本3,我添加了我的全局路徑:'/ usr/local/share/composer/vendor/phalcon-devtools/ide' – JREAM 2017-03-27 02:23:19

4

您可以提煉出接口我InterfaceDistiller

namespace com\github\gooh\InterfaceDistiller; 
include __DIR__ . '/../src/autoload.php'; 

var_dump(extension_loaded('phalcon')); // should be true 

$phalconClasses = new \RegexIterator(
    new \ArrayIterator(get_declared_classes()), 
    '/^Phalcon/' 
); 

foreach ($phalconClasses as $phalconClass) 
{ 
    $reflector = new \ReflectionClass($phalconClass); 
    $methodIterator = new \ArrayIterator($reflector->getMethods()); 

    $distillate = new Distillate; 
    $distillate->setInterfaceName($reflector->getNamespaceName()); 
    $distillate->setExtendingInterfaces(
     implode(',', $reflector->getInterfaceNames()) 
    ); 

    foreach ($methodIterator as $method) { 
     $distillate->addMethod($method); 
    } 

    $file = new \SplTempFileObject(-1); 
    $writer = new Distillate\Writer($file); 
    $writer->writeToFile($distillate); 
    $file->rewind(); 
    $file->fpassthru(); 
} 

這一操作將產生以下輸出:

​​

請參閱full file holding all distilled interfaces of Phalcon

請注意,InterfaceDistiller只能生成接口。所以你不會得到混合的類骨架和接口,而只是接口。

另一個問題是接口方法將全部公開,因爲接口方法應該是公開的。您可以使用tweak the writer來使用真實的可視性。或者,您可以限制Distiller將提取哪些方法。

正如您所看到的API的某些部分無法解析。這是因爲InterfaceDistiller使用反射從類中提取接口,並且某些值不僅僅以這種方式提供。考慮手動填寫無法解析的值。

雖然對於您的UseCase並不完美,但它應該給你一個很好的啓動。

如果你決定去適應和完成的文件,因此它完全可用,考慮派遣一拉請求與整個文件到爾康人

+1

謝謝戈登的起點。如果沒有人給出更好的答案,在幾天內將標記爲正確,但現在請從我這裏得到讚揚。 – 2013-04-04 11:34:37