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

Registering Commands using directories fails outside the app directory #50545

Closed
neoighodaro opened this issue Mar 14, 2024 · 2 comments
Closed
Assignees

Comments

@neoighodaro
Copy link

neoighodaro commented Mar 14, 2024

Laravel Version

11.0.4

PHP Version

8.3

Database Driver & Version

N/A

Description

Currently, to load a command outside the app directory, one would have to directly reference the class because registering the directory the class is in will fail. This happens for several reason, but the main reason being, it's hard coded to use the App namespace in

Steps To Reproduce

  • Create a directory outside the app directory
  • Register it as a namespace in composer.json
  • Create an artisan command inside this directory
  • Register that directory in the bootstrap/app.php file
@crynobone
Copy link
Member

Hey there, thanks for reporting this issue.

We'll need more info and/or code to debug this further. Can you please create a repository with the command below, commit the code that reproduces the issue as one separate commit on the main/master branch and share the repository here?

Please make sure that you have the latest version of the Laravel installer in order to run this command. Please also make sure you have both Git & the GitHub CLI tool properly set up.

laravel new bug-report --github="--public"

Do not amend and create a separate commit with your custom changes. After you've posted the repository, we'll try to reproduce the issue.

Thanks!

@nunomaduro
Copy link
Member

It seems that, indeed, the path provided need to be within the main application namespace for a for having "withCommands" discovering commands within a directory. We are open to a pull request if you wish to enable this feature for a commands directory outside of the main application namespace.

Meanwhile, you can use the withCommands method with the command "class" string in your application's bootstrap/app.php:

use App\Domain\Orders\Commands\SendEmails;
 
->withCommands([
    SendEmails::class,
])

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

No branches or pull requests

3 participants