Changes proposed in this pull request:
Illuminate components always expect the app to be the container, but also expect the app to be implementing the laravel app contract. This means that very often between minor illuminate updates we get a call to a method on the app that doesn't exist in the Flarum app. This fixes the issue once and for all.
Reviewers should focus on:
The application contract implementation was separated into a trait to reduce the bloat because all those methods we don't actually need/use, so it can serve as a readable way of telling.
Necessity
[x] Has the problem that is being solved here been clearly explained?
[x] If applicable, have various options for solving this problem been considered?
[x] For core PRs, does this need to be in core, or could it be in an extension?
[x] Are we willing to maintain this for years / potentially forever?
Confirmed
[ ] Frontend changes: tested on a local Flarum installation.
[ ] Backend changes: tests are green (run composer test).
[ ] Core developer confirmed locally this works as intended.
[ ] Tests have been added, or are not appropriate here.
Changes proposed in this pull request: Illuminate components always expect the app to be the container, but also expect the app to be implementing the laravel app contract. This means that very often between minor illuminate updates we get a call to a method on the app that doesn't exist in the Flarum app. This fixes the issue once and for all.
Reviewers should focus on: The application contract implementation was separated into a trait to reduce the bloat because all those methods we don't actually need/use, so it can serve as a readable way of telling.
Necessity
Confirmed
composer test
).