是否存在PhalconPHP框架的任何骨架,我可以在我的Netbeans IDE中使用它来实现自动完成目的?
我需要的只是一堆带有类/接口声明的文件,如下所示:
namespace \Phalcon;
class Tag {
/**
* bla bla bla
* ...
*/
public static function setTitle( $title ) {}
...
}
答案 0 :(得分:22)
也许你正在寻找这个? Phalcon DevTools https://github.com/phalcon/phalcon-devtools/tree/master/ide
答案 1 :(得分: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();
}
然后会产生以下输出:
<?php
interface Phalcon
{
public function __clone();
public function __construct($message /* = unresolvable */, $code /* = unresolvable */, $previous /* = unresolvable */);
public function getMessage();
public function getCode();
public function getFile();
public function getLine();
public function getTrace();
public function getPrevious();
public function getTraceAsString();
public function __toString();
}
// this continues for all classes in the extension
请参阅full file holding all distilled interfaces of Phalcon
请注意,InterfaceDistiller只能生成接口。所以你不会混合使用类骨架和接口,而只是接口。
另一个问题是接口方法都是公开的,因为接口方法应该是公共的。您可以tweak the writer使用真正的可见性。或者您可以限制Distiller将提取的方法。
正如您所看到的,API的某些部分无法解析。这是因为InterfaceDistiller使用Reflection从类中提取接口,并且某些值不仅仅是这样可用的。考虑手工填写无法解决的值。
虽然不适合您的UseCase,但它应该会给你一个很好的开端。
如果您决定调整并完成该文件以使其完全可用,请考虑将整个文件的Pull Request发送给Phalcon人员
答案 2 :(得分:4)
我不确定Netbeans及其与在其他IDE中提供自动完成的文件的兼容性,但已经有PHPStorm支持
How do I use phalcon-devtools\ide\phpstorm in phpstorm?
在Sublime Text
中也支持Volt