Repository navigation
This release makes custom-element rendering more reliable, especially for nesting, attribute parsing, caching, and applications that use multiple TagEngine instances.
Fixed
- Correctly render nested custom elements, including nested occurrences of the same tag.
- Support standard unquoted attribute values such as
test=value. - Preserve empty attribute values such as
test="". - Allow attributes to hydrate nullable public properties on custom-tag classes.
- Prevent tag registrations from one
TagEngineinstance overwriting another engine’s registrations. - Fix default
TagEngineconstruction so it no longer emits a warning when no tag directories are configured. - Version cache entries based on the component source and write cache files atomically, preventing stale output after component changes and partial cache reads.
Changed
- Static-analysis tools are now normal development dependencies;
composer stanworks after a standard Composer install. - CI now uses the declared Composer dependencies directly and validates PHP 8.1 through PHP 8.5.
Upgrade notes
No API migration is required.
If component caching is enabled, old cache files can be safely deleted after upgrading because the cache-key format has changed.
Nested components that previously remained unrendered or produced malformed output will now render correctly. If any templates depended on that legacy behavior, review their rendered output after upgrading.
What's Changed
- update stan + PHPUnit 13 by @LordSimal in #8
- CI: add PHP 8.5 to test matrix by @LordSimal with @Copilot in #11
- Fix default tag directory configuration by @LordSimal in #14
- Render nested components with matching boundaries by @LordSimal in #15
- Parse standard HTML attribute values by @LordSimal in #16
- Hydrate nullable public component properties by @LordSimal in #17
- Version and atomically write component cache entries by @LordSimal in #19
- Install static analysis tools as dev dependencies by @LordSimal in #20
- Keep tag registrations isolated per engine by @LordSimal in #18
Full Changelog: 0.3.0...0.4.0