Есть ли инструмент для генерации php-интерфейса из существующих классов? Было бы неплохо иметь такой инструмент, как создание автоматического getter / setter Netbeans, но для интерфейсов.
Для программного использования имеется InterfaceDistiller
который позволяет выводить интерфейсы из существующих классов следующим образом:
$distiller = new InterfaceDistiller; $distiller ->methodsWithModifiers(\ReflectionMethod::IS_PUBLIC) ->extendInterfaceFrom('Iterator, SeekableIterator') ->excludeImplementedMethods() ->excludeInheritedMethods() ->excludeMagicMethods() ->excludeOldStyleConstructors() ->filterMethodsByPattern('(^get)') ->saveAs(new SplFileObject('MyInterface.php')) ->distill('SomeFoo', 'MyInterface');
Он также имеет интерфейс CLI:
Usage: phpdistill [options] <classname> <interfacename> --bootstrap Path to File containing your bootstrap and autoloader --methodsWithModifiers <number> A ReflectionMethod Visibility BitMask. Defaults to Public. --extendInterfaceFrom <name,...> Comma-separated list of Interfaces to extend. --excludeImplementedMethods Will exclude all implemented methods. --excludeInheritedMethods Will exclude all inherited methods. --excludeMagicMethods Will exclude all magic methods. --excludeOldStyleConstructors Will exclude Legacy Constructors. --filterMethodsByPattern <pattern> Only include methods matching PCRE pattern. --saveAs Filename to save new Interface to. STDOUT if omitted.
Я не знаю никакой среды IDE, предлагающей такую функциональность для php.
В настоящее время PHPStorm 8 может это сделать, может быть, и предыдущих версий.
шаги: