IDE自动完成PhalconPHP



是否存在任何类型的骨骼为PhalconPHP框架,我可以使用在我的Netbeans IDE自动完成的目的?

我所需要的是一堆带有类/接口声明的文件,像这样:

namespace Phalcon;
class Tag {
    /**
     * bla bla bla
     * ...
     */
    public static function setTitle( $title ) {}
    ...
}

也许你正在寻找这个?Phalcon DevToolshttps://github.com/phalcon/phalcon-devtools/tree/master/ide

您可以使用我的InterfaceDistiller提取接口:

namespace comgithubgoohInterfaceDistiller;
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 DistillateWriter($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

查看包含Phalcon所有蒸馏接口的完整文件

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

另一个问题是接口方法都是公共的,因为接口方法应该是公共的。您可以调整编写器以使用实际可见性。或者您可以限制蒸馏器的蒸馏方法。

如您所见,API的某些部分无法解析。这是因为InterfaceDistiller使用反射(Reflection)从类中提取接口(Interface),而有些值不是通过这种方式获得的。考虑手工填写无法解析的值。

虽然不适合您的UseCase,但它应该给您一个很好的开端。

如果你决定调整和完善文件,使其完全可用,请考虑将整个文件发送一个Pull Request给Phalcon人员

我不确定Netbeans及其与其他ide中提供自动完成功能的文件的兼容性,但PHPStorm已经提供了支持

如何在phpstorm中使用phalcon-devtoolsidephpstorm ?

Sublime Text中也支持Volt

https://github.com/phalcon/volt-sublime-textmate

相关内容

  • 没有找到相关文章

最新更新