phpactor icon indicating copy to clipboard operation
phpactor copied to clipboard

Inflect command uses invalid `default` default.

Open kermorgant opened this issue 7 years ago • 4 comments

Hi,

Maybe I am missing something but I've runned into this while trying to extract an interface, using phpactor from the command line

% phpactor class:inflect  src/AppBundle/Infrastructure/Aws/AwsClient.php src/AppBundle/Infrastructure/Aws/AwsClientInterface2.php -vvv                !10098

                                                              
  [InvalidArgumentException]                                  
  Generator "default" not known, known elements: "interface"  
                                                              

Exception trace:
 () at /home/mikael/src/phpactor/vendor/phpactor/code-transform/lib/Domain/AbstractCollection.php:41
 Phpactor\CodeTransform\Domain\AbstractCollection->get() at /home/mikael/src/phpactor/lib/Extension/CodeTransform/Application/ClassInflect.php:45
 Phpactor\Extension\CodeTransform\Application\ClassInflect->doGenerateFromExisting() at /home/mikael/src/phpactor/lib/Extension/CodeTransform/Application/ClassInflect.php:31                                                                                                                                                 
 Phpactor\Extension\CodeTransform\Application\ClassInflect->generateFromExisting() at /home/mikael/src/phpactor/lib/Extension/CodeTransform/Command/ClassInflectCommand.php:75                                                                                                                                                
 Phpactor\Extension\CodeTransform\Command\ClassInflectCommand->process() at /home/mikael/src/phpactor/lib/Extension/CodeTransform/Command/ClassInflectCommand.php:58                                                                                                                                                          
 Phpactor\Extension\CodeTransform\Command\ClassInflectCommand->execute() at /home/mikael/src/phpactor/vendor/symfony/console/Command/Command.php:264
 Symfony\Component\Console\Command\Command->run() at /home/mikael/src/phpactor/vendor/symfony/console/Application.php:874
 Symfony\Component\Console\Application->doRunCommand() at /home/mikael/src/phpactor/vendor/symfony/console/Application.php:228
 Symfony\Component\Console\Application->doRun() at /home/mikael/src/phpactor/lib/Application.php:41
 Phpactor\Application->doRun() at /home/mikael/src/phpactor/vendor/symfony/console/Application.php:130
 Symfony\Component\Console\Application->run() at /home/mikael/src/phpactor/bin/phpactor:43

class:inflect [--list] [--force] [--format FORMAT] [--] <src> <dest> [<variant>]

I've tried this on develop and master branch, same result.

kermorgant avatar Apr 30 '18 15:04 kermorgant

You probably want

$ phpactor class:inflect  \
src/AppBundle/Infrastructure/Aws/AwsClient.php \
src/AppBundle/Infrastructure/Aws/AwsClientInterface2.php \
interface \
-vvv

(note the third parameter, 'interface')

weirdan avatar Apr 30 '18 15:04 weirdan

Though the ticket is still valid, we should probably handle the default more gracefully.

dantleech avatar Apr 30 '18 15:04 dantleech

thanks @weirdan !

kermorgant avatar Apr 30 '18 15:04 kermorgant

This should be fixed now. As far as I know you can generate classes and interfaces no problem.

mamazu avatar Aug 18 '24 21:08 mamazu