-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[HttpKernel] Fix Bundle name regression #20944
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
[HttpKernel] Fix Bundle name regression #20944
Conversation
Good catch. I think it should still try to parse both at once, if possible. So 👍 for this approach. |
Do we have a test which ensures that the name will be guessed properly if it isn't already set when |
@xabbuh : We don't. I've just added one, thanks (ideally those tests should be backported to lower branches I guess). |
|
||
use Symfony\Component\HttpKernel\Bundle\Bundle as BaseBundle; | ||
|
||
class Bundle extends BaseBundle |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could put this class and the GuessedNameBundle
class into the BundleTest.php
file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done 👍
👍 |
1 similar comment
👍 |
Thank you @ogizanagi. |
This PR was merged into the 3.3-dev branch. Discussion ---------- [HttpKernel] Fix Bundle name regression | Q | A | ------------- | --- | Branch? | 3.2 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #20117 | License | MIT | Doc PR | N/A The bundle name can be set manually instead of being guessed from the class name, as the property is protected. However, a regression prevents this name to be used, as calling `Bundle::getNamespace()` recomputes the bundle name from class instead. The ability to name explicitly bundles is appreciable when dealing with "virtual" ones, or when providing bundles in a library under a `Vendor\MyPackage\Bridge\Symfony\Bundle` namespace. No need to rename the bundle class `VendorMyPackageBundle` which will make the instantiation in `Kernel::registerBundle()` quite ugly: ```diff - new Vendor\MyPackage\Bridge\Symfony\Bundle\VendorMyPackageBundle() + new Vendor\MyPackage\Bridge\Symfony\Bundle\Bundle() ``` What about removing `Bundle::parseClassName()` and processing the namespace and bundle name separately, but keeping the `namespace` property introduced in #20117? Commits ------- 3b5127d [HttpKernel] Fix Bundle name regression
@fabpot this seems to be missing from 3.2 branch. |
The bundle name can be set manually instead of being guessed from the class name, as the property is protected.
However, a regression prevents this name to be used, as calling
Bundle::getNamespace()
recomputes the bundle name from class instead.The ability to name explicitly bundles is appreciable when dealing with "virtual" ones, or when providing bundles in a library under a
Vendor\MyPackage\Bridge\Symfony\Bundle
namespace. No need to rename the bundle classVendorMyPackageBundle
which will make the instantiation inKernel::registerBundle()
quite ugly:What about removing
Bundle::parseClassName()
and processing the namespace and bundle name separately, but keeping thenamespace
property introduced in #20117?