Closed (fixed)
Project:
Domain Path
Version:
3.x-dev
Component:
Code
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
11 Apr 2026 at 18:00 UTC
Updated:
27 Apr 2026 at 09:30 UTC
Jump to comment: Most recent
The domain_path module does not distinguish between public API classes and internal implementation details. This makes refactoring difficult because any change is a potential BC break.
Follows the same approach as the domain module (#3584261).
Add @internal to implementation classes across domain_path and domain_path_pathauto submodule.
@internal)DomainAliasManagerInterfaceDomainAliasRepositoryInterfaceDomainPathAliasInterfaceDomainAliasStorageHelperInterface@internal)All other classes: repository, manager, helper, entity, list builder, event subscriber, forms, hooks, path processor, field types/widgets, validation constraints, and domain_path_pathauto classes.
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
mably commentedComment #4
mably commentedAPI boundary annotations
Implementation classes are now marked with the following annotations:
DomainAliasManagerInterface,DomainAliasRepositoryInterface,DomainPathAliasInterface) rather than concrete classes.DomainPathHelper: this utility class should not be extended but is not internal. External code can inject and use it via thedomain_path.helperservice. No interface is needed because there is no valid use case for providing an alternative implementation.DomainPathFormHooks,DomainPathEntityHooks,DomainPathPathautoHooks): hook classes are discovered byHookCollectorPassvia#[Hook]attributes on the declared class. Extending them does not re-discover the parent hooks, so subclassing is functionally useless.How to customize behavior
To customize domain path form behavior, implement
hook_form_alter()orhook_form_FORM_ID_alter()in your own module. To customize entity hooks, implement the corresponding hooks.If you have a use case that cannot be addressed through hooks and requires a new extension point, please open an issue in the domain_path issue queue and we will evaluate whether to expose a new interface or service.
Comment #8
mably commented