Install
Works with Drupal: ^10.3 || ^11Using Composer to manage Drupal site dependencies
Alternative installation files
Download tar.gz
89.93 KB
MD5: e45551539ac9baed300701dde7478400
SHA-1: 68da19a2342ab493fcbeee7fc54824782f55d77b
SHA-256: b3bc2dcfb10289dc386d7560d1d5a89a7b7d767cd360cc6cfe85d445f7766c49
Download zip
141.59 KB
MD5: 1456f9b19c66f7a076a81b8f5a5d6b85
SHA-1: 20a583eb39b2617fa15deb855981ad50a2f78e3a
SHA-256: 19ce63e1aee38af637ecbab711c39d6b3e5281aa577d2598d8435bd923592ebc
Release notes
Major release. 2.0.0 is a complete rework of domain_path on top of Drupal core's standard path_alias table, with full OOP hook conversion, several new features and many bug fixes. Compared to 8.x-1.6, this is a major architectural upgrade — read the Upgrade notes below before deploying.
Compatibility at a glance
- Drupal core: requires 10.3 or 11 (was 9.5+ on 8.x-1.6).
- Domain module: requires 2.x or 3.x — this is the bridge release. Domain 1.x is no longer supported (8.x-1.6 supported
^1.0-beta || ^2; 2.0.0 supports^2 || ^3). - Pathauto: optional, but recommended via the
domain_path_pathautosubmodule.
Highlights
- Custom
domain_pathtable replaced by core'spath_aliastable, with adomain_idcolumn added on indexes for fast per-domain lookups (#3564844, #3577052). - All hooks converted to OOP
#[Hook]attribute classes (#3573947). - Per-domain alias logic moved from node submit handlers to the entity API level — works for any content entity, not just nodes (#3247423).
- Same alias allowed in different languages on the same domain (#3526991).
- Pathauto patterns defined for a content type now enable Pathauto automatically on save (#3530964).
New features
- Domain path list page now filterable by language, domain id and source (#3499723).
- Outbound URL processing accepts a
domainoption to force a specific domain alias (#3575163). - Domain path settings tab added on the Domain admin page (#3578228).
- The domain path field is now shown in the sidebar even when "Hide the default URL alias UI" is disabled (#3567963).
- Slash prefix validated on the form widget (#3519144).
- Domain path widget no longer requires
domain_access— works withdomain_sourcealone (#3478777). - Visibility rules on the widget flipped to a more intuitive default (#3460806).
- Wrong domain list when
domain_accessfield is disabled on the form fixed (#3375368). - "Delete domain-specific aliases" checkbox wording clarified (#3461258).
Notable bug fixes
- Path alias rendering compatibility with
domain_sourcerestored (#3568835). - "Delete all domain-specific aliases" checkbox now actually works on save (#3576020).
- Path aliases editable again when editing content (#3582706).
- Path aliases no longer uniquified across domains (#3582698).
- Uniquify scoped to the current domain id (#3568107).
- Domain alias uniqueness constraint scoped to current domain (#3574489).
- 404 fixed when creating new content with custom domain path +
domain_source+pathauto(#3565885). - 404 fixed in
DomainPathAliasManagerfallback to core aliases (#3566322). - Errors enabling
domain_path_pathautoresolved (#3574827). - Pathauto generator no longer breaks taxonomy children (#3577307 — switched from decorator to inheritance).
- Excessive DB queries fixed:
DomainPathAliasManagernow uses core'sAliasPrefixListproperly (#3584103). - Migration update hook now ordered correctly (#3583817).
- No automatic URL generation when an existing non-domain path alias is already defined (#3567955).
Architecture / API
DomainPathAliasManagerrefactored into a decorator with caching (#3563256).- New
DomainAliasRepositorymirroring core'sAliasRepository(#3563785). DomainPathFormHelperextracted fromDomainPathFormHooksfor extensibility (#3585177).alterEntityForm()moved fromDomainPathHelpertoDomainPathFormHooks(#3584297).- Implementation classes annotated with
@internalto clarify the public API surface (#3584294). DomainPathautoGeneratorswitched from decorator to inheritance (#3577307).- Plugin annotations replaced by attributes (#3575182).
- Settings form uses
#config_target(#3565027). - Constructor no longer reads config — fixes early bootstrap edge cases (#3570992).
Upgrade notes
- Run
drush updatedbafter deploying — update hooks migrate aliases from the legacydomain_pathtable intopath_aliaswith adomain_idcolumn. - The legacy
domain_pathentity type definition (a leftover from 1.x kept around during the migration topath_alias) is now uninstalled by an update hook (#3570553). No manual step needed. - Custom code that referenced the legacy
domain_pathtable or entity classes will need updating — querypath_aliaswith thedomain_idfield instead. - If you are still on Domain module 1.x, upgrade Domain to 2.x or 3.x before installing this release.
Internal / quality
- Test coverage substantially expanded (#3574553, #3574501).
- Test base updated for PHPUnit 10/11 (#3566468).
- PHPCS, PHPStan and CSpell clean on CI (#3563491, #3563492, #3563485).
- GitLab CI runs against current and previous major (#3564171).
- Tugboat sandbox added for live preview of issues (#3564636, #3565908).
- Project logo added (#3567203).
- Outdated
CHANGELOG.txtremoved (#3565025).