para descargar con php netbeans ide phalcon

descargar - netbeans php



Autocompletar IDE para PhalconPHP (3)

¿Existe algún tipo de esqueleto para el marco PhalconPHP, que puedo usar en mi Netbeans IDE para fines de autocompletado?

Todo lo que necesito es un montón de archivos con declaraciones de clase / interfaz, como esta:

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


Puedes destilar las interfaces con mi 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(); }

Esto producirá el siguiente resultado:

<?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

Ver archivo completo con todas las interfaces destiladas de Phalcon

Tenga en cuenta que InterfaceDistiller solo puede producir interfaces. Por lo tanto, no obtendrás una combinación de esqueletos de clases e interfaz, sino interfaces.

Otro problema es que los métodos de interfaz serán públicos porque, bueno, los métodos de interfaz deben ser públicos. Puede modificar al escritor para que use la visibilidad real. O puede limitar qué métodos destilará Distiller.

Como puede ver, algunas partes de la API no se pueden resolver. Esto se debe a que InterfaceDistiller usa Reflection para destilar la interfaz de las clases y algunos valores no solo están disponibles de esta manera. Considere completar los valores irresolubles a mano.

Aunque no es perfecto para su UseCase, debería darle una gran ventaja.

Si decide adaptar y completar el archivo para que sea totalmente utilizable, considere enviar una solicitud de extracción con el archivo completo a la gente de Phalcon.