Closed (fixed)
Project:
Views Menu Node Children Filter
Version:
4.x-dev
Component:
Code
Priority:
Normal
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
27 Nov 2025 at 21:23 UTC
Updated:
19 Jan 2026 at 12:39 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #2
rjjakes commentedComment #3
anybodyThanks @rjjakes - could you please provite this as MR instead?
Comment #5
anybodyComment #6
grevil commentedThe code inside the MenuChildrenNodeJoin Plugin looks very "unusual", let me take a look.
Comment #7
grevil commentedI don't quite get this plugin implementation conceptually.
For one, there are two instantiation mechanisms for the same plugin:
One, as a service ("views_menu_children_filter.join_handler", which is used by several other classes in this module) and the other through the views plugin system (via `@ViewsJoin("menu_children_node_join")`)
Second, Neither will actually use this "create" method:
The views plugin system instantiation would only use "create", if the class would implement "ContainerFactoryPluginInterface" but the class doesn't nor any parent nor any other class extending "JoinPluginBase" in core ever used dependency injection on a join plugin.
The service handler instantiation uses "_construct" by default.
Meaning, this method was never actually called.
Also, the create implementation doesn't actually inject any services. It is only used to set default settings which were never used to begin with.
I'd vote for entirely removing the method (and instantiating it only as a service? Unsure about that, not too deep into views implementations). It is not even manually executed where the class is instantiated as a service. Though, I wonder how the error:
came to be. Not even in 11.3.x "PluginBase" has a create method, see https://git.drupalcode.org/project/drupal/-/blob/11.3.x/core/lib/Drupal/...
Comment #8
grevil commentedComment #9
anybody@rjjakes: Could you link the Drupal 11.3 core change that caused this incompatibility?
I'm unsure if we may really remove the method, because I'm not sure about the details yet. Fixing the method parameters instead would be safe, if we understand the Core change.
Someone needs some more time on this, if the change is more complex. I don't have that time currently.
Would be great if we had some more details @rjjakes!
Comment #10
rjjakes commentedI'm not sure what other information is required. The interface for \Drupal\Core\Plugin\PluginBase has changed and requires the changes to the \Drupal\views_menu_children_filter\Plugin\views\join\MenuChildrenNodeJoin to be updated to be compatible, as detailed in the error message I shared.
This issue and MR I raised only fixed the interface issue.
Comment #11
grevil commentedI simply wonder how it ever was called. No parent extends "ContainerInjectionInterface" and the service definition:
generally uses "__construct()" directly. Nor have I seen this pattern in any other "ViewsJoin" Plugin.
Please test the new MR changes, if everything still works as expected. I don't have the time right now, to test the changes.
Comment #12
anybody@rjjakes could you provide a backtrace maybe? That would answer it.
Comment #13
adel-by commentedFor me this happens with any views that has a relationship defined on a fresh cache.
The plugin manager tries to load the available ViewsJoin Plugins and fails because of the incorrect declaration.
The provided MR solves the problem Thanks!
marking as RTBC.
Comment #14
anybodyI left a comment. I'm still afraid the MR might have unrelated side-effects!
Comment #15
alex.skrypnykPatch with an update for the signature is attached
Comment #16
anybody@grevil let's keep it and add a comment linking this issue please, so it might be removed in the future! So we're double-safe!
Comment #17
grevil commentedDone. Please review!
Comment #18
anybodyThanks, perfect!
Comment #20
grevil commented