Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GeneratorCommand cannot have an empty name #1163

Closed
darinlarimore opened this issue Sep 30, 2024 · 12 comments · Fixed by statamic/cms#10882
Closed

GeneratorCommand cannot have an empty name #1163

darinlarimore opened this issue Sep 30, 2024 · 12 comments · Fixed by statamic/cms#10882
Labels

Comments

@darinlarimore
Copy link
Contributor

darinlarimore commented Sep 30, 2024

Description

Using Statamic v5.28.0 I receive an error when running composer install. This error seems to stem from the @php artisan package:discover --ansi post-autoload-dump function.
Screenshot 2024-09-30 at 4 23 19 PM

Steps to reproduce

  1. Update to latest version of Statamic v5.28.0 using composer update statamic/cms
  2. Error shows when running post-autoload-dump function

Environment

Command php please support:details won't run!

@duncanmcclean
Copy link
Owner

Are you able to provide the full stack trace for the error? You can find it in your log file (storage/logs).

@darinlarimore
Copy link
Contributor Author

Yes! Here it is:

[2024-09-30 17:00:09] local.ERROR: The command defined in "DuncanMcClean\SimpleCommerce\Console\Commands\GeneratorCommand" cannot have an empty name. {"exception":"[object] (Symfony\\Component\\Console\\Exception\\LogicException(code: 0): The command defined in \"DuncanMcClean\\SimpleCommerce\\Console\\Commands\\GeneratorCommand\" cannot have an empty name. at /Users/darin/webdev/glass-arts-indiana/vendor/symfony/console/Application.php:533)
[stacktrace]
#0 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Console/Application.php(230): Symfony\\Component\\Console\\Application->add(Object(DuncanMcClean\\SimpleCommerce\\Console\\Commands\\GeneratorCommand))
#1 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Console/Application.php(219): Illuminate\\Console\\Application->addToParent(Object(DuncanMcClean\\SimpleCommerce\\Console\\Commands\\GeneratorCommand))
#2 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Console/Application.php(253): Illuminate\\Console\\Application->add(Object(DuncanMcClean\\SimpleCommerce\\Console\\Commands\\GeneratorCommand))
#3 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Console/Application.php(267): Illuminate\\Console\\Application->resolve('DuncanMcClean\\\\S...')
#4 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php(459): Illuminate\\Console\\Application->resolveCommands(Array)
#5 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Console/Application.php(131): Illuminate\\Support\\ServiceProvider->Illuminate\\Support\\{closure}(Object(Illuminate\\Console\\Application))
#6 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Console/Application.php(78): Illuminate\\Console\\Application->bootstrap()
#7 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(539): Illuminate\\Console\\Application->__construct(Object(Illuminate\\Foundation\\Application), Object(Illuminate\\Events\\Dispatcher), '11.25.0')
#8 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(197): Illuminate\\Foundation\\Console\\Kernel->getArtisan()
#9 Command line code(1): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#10 {main}
"} 

@duncanmcclean
Copy link
Owner

duncanmcclean commented Sep 30, 2024

Thanks!

I have a feeling this is actually an issue in Statamic, rather than Simple Commerce, caused by statamic/cms#9270. I'll try and take a look in the next couple of days.

@darinlarimore
Copy link
Contributor Author

Thanks @duncanmcclean!

@duncanmcclean
Copy link
Owner

Closing in favour of statamic/cms#10873, which already has a PR opened against it.

@duncanmcclean
Copy link
Owner

Actually, I don't think that's the same thing. Re-opening.

@duncanmcclean duncanmcclean reopened this Oct 1, 2024
@duncanmcclean
Copy link
Owner

If you make the GeneratorCommand class in Simple Commerce abstract, does that fix it?

@darinlarimore
Copy link
Contributor Author

@duncanmcclean
If I make the GeneratorCommand class abstract like this:
Screenshot 2024-10-01 at 10 28 10 AM

I get a not instantiable error in my logs:

[2024-10-01 10:26:47] local.ERROR: Target [DuncanMcClean\SimpleCommerce\Console\Commands\GeneratorCommand] is not instantiable. {"exception":"[object] (Illuminate\\Contracts\\Container\\BindingResolutionException(code: 0): Target [DuncanMcClean\\SimpleCommerce\\Console\\Commands\\GeneratorCommand] is not instantiable. at /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Container/Container.php:1195)
[stacktrace]
#0 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Container/Container.php(947): Illuminate\\Container\\Container->notInstantiable('DuncanMcClean\\\\S...')
#1 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Container/Container.php(815): Illuminate\\Container\\Container->build('DuncanMcClean\\\\S...')
#2 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1046): Illuminate\\Container\\Container->resolve('DuncanMcClean\\\\S...', Array, true)
#3 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Container/Container.php(751): Illuminate\\Foundation\\Application->resolve('DuncanMcClean\\\\S...', Array)
#4 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1028): Illuminate\\Container\\Container->make('DuncanMcClean\\\\S...', Array)
#5 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Console/Application.php(253): Illuminate\\Foundation\\Application->make('DuncanMcClean\\\\S...')
#6 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Console/Application.php(267): Illuminate\\Console\\Application->resolve('DuncanMcClean\\\\S...')
#7 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php(459): Illuminate\\Console\\Application->resolveCommands(Array)
#8 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Console/Application.php(131): Illuminate\\Support\\ServiceProvider->Illuminate\\Support\\{closure}(Object(Illuminate\\Console\\Application))
#9 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Console/Application.php(78): Illuminate\\Console\\Application->bootstrap()
#10 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(539): Illuminate\\Console\\Application->__construct(Object(Illuminate\\Foundation\\Application), Object(Illuminate\\Events\\Dispatcher), '11.25.0')
#11 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(197): Illuminate\\Foundation\\Console\\Kernel->getArtisan()
#12 /Users/darin/webdev/glass-arts-indiana/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1203): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#13 /Users/darin/webdev/glass-arts-indiana/artisan(13): Illuminate\\Foundation\\Application->handleCommand(Object(Symfony\\Component\\Console\\Input\\ArgvInput))
#14 {main}
"} 

@de-raaf-media
Copy link

de-raaf-media commented Oct 1, 2024

I was just browsing the issues when this occurred. Happened to me as well. Unfortunately I cannot tell if it was a Statamic upgrade or a Simple Commerce upgrade that lead to this error.

Actually. The error message seems to complain about a name being empty. Looking at the other commands the all seem to have a name:

protected $name = 'namehere ';

@duncanmcclean
Copy link
Owner

I've opened a PR on the Statamic side (statamic/cms#10882), which coupled with v7.5.2 will fix the issue.

The Statamic fix will likely be included in the next release.

@de-raaf-media
Copy link

Cool! Thanks!

@darinlarimore I temporary added the following to GeneratorCommand.php for now so I can continue to develop locally. It will be overridden by the next Statamic update:

class GeneratorCommand extends StatamicGeneratorCommand
{
    protected $name = 'somename';

@duncanmcclean
Copy link
Owner

This is fixed now - with Statamic v5.29.0 and Simple Commerce v7.5.2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
3 participants