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 observers with the ObservedBy attribute is not tracked by event:list command #53616

Open
illambo opened this issue Nov 21, 2024 · 4 comments

Comments

@illambo
Copy link

illambo commented Nov 21, 2024

Laravel Version

11.33.2

PHP Version

8.2.24

Database Driver & Version

No response

Description

Hi, I noticed that when I register an observers with the ObservedBy attribute is not tracked by event:list command while via observe method in an AppServiceProvider this is appropriately tracked.

Steps To Reproduce

  • Create a model with an Observer
  • Run php artisan event:list command
  • Check the different behavior based on the register mode
Copy link

Thank you for reporting this issue!

As Laravel is an open source project, we rely on the community to help us diagnose and fix issues as it is not possible to research and fix every issue reported to us via GitHub.

If possible, please make a pull request fixing the issue you have described, along with corresponding tests. All pull requests are promptly reviewed by the Laravel team.

Thank you!

@ashraful1971
Copy link

The issue occurs because PHP attributes like ObservedBy are inspected at runtime. Observers registered using attributes are resolved only when the corresponding model is bootstrapped. However, the php artisan event:list command does not bootstrap models, so their observers are not resolved, and related events do not appear in the list.

To include these in php artisan event:list, a mechanism is needed to discover and bootstrap all models in the application. This could be achieved by:

  • Automatically scanning directories (e.g., app/Models) to locate all model classes.
  • Explicitly defining a model registry (e.g., in a models.php config file).

@illambo
Copy link
Author

illambo commented Nov 22, 2024

I also noticed in this discuss #53607 another behavior that differs.

@ashraful1971
Copy link

I also noticed in this discuss #53607 another behavior that differs.

Yeah. Same issue. Adding new trait in a model wont make any effect until the model is bootstrapped.

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