Is there a tool the generate php interface from existing classes? It would be nice to have a tool like Netbeans automatic getter/setter creation but for interfaces.
Solved
For programmatic usage there is InterfaceDistiller
that allows you to derive interfaces from existing classes like this:
$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');
It also has a CLI interface:
Usage: phpdistill [options]
--bootstrap Path to File containing your bootstrap and autoloader
--methodsWithModifiers A ReflectionMethod Visibility BitMask. Defaults to Public.
--extendInterfaceFrom 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 Only include methods matching PCRE pattern.
--saveAs Filename to save new Interface to. STDOUT if omitted.
I'm not aware of any IDE that offers such functionality for php.
Currently PHPStorm 8 can do this, maybe prior versions as well.
Steps:
- Place your cursor on the class name
- Choose: Refactor -> Extract -> Interface
- Fill out the options and done.
Comments
Post a Comment