Skip to content

Releases: johnnyxlemonade/component_meta

v2.2.0 – Hreflang alternate links support

30 Sep 20:03

Choose a tag to compare

✨ Added

  • New AlternateLinkTag entity for rendering <link rel="alternate" hreflang="...">
  • MetaData::alternates property for defining language variants
  • Automatic generation of alternate links
  • Support for x-default fallback

🔧 Improved

  • Meta entity now includes alternate link rendering alongside canonical and image_src

v2.1.1 – Extensibility + Entity order update

13 Sep 13:18

Choose a tag to compare

🔧 Changed

  • Reordered default entities:
    • Meta → priority 10
    • Dc → priority 20
    • Facebook → priority 30
    • Twitter → priority 40

v2.1.0 – Add extensibility & static analysis support

13 Sep 13:10

Choose a tag to compare

✨ Added

  • MetaFactory::addEntity() for adding custom meta entities with priority
  • MetaFactory::removeEntity() for removing previously added entities
  • New PHPUnit tests covering add/remove entity behavior
  • Integrated PHPStan (level 10) for static analysis
  • Added support for phpstan/phpstan-strict-rules

🔧 Improved

  • Cleaned up test suite (no unused properties in anonymous classes)
  • All tests now pass with PHPUnit 10.5
  • Project fully analysed with PHPStan level 10, strict mode enabled

v2.0.1 – Test suite & docs improvements

13 Sep 11:44

Choose a tag to compare

🛠 Fixed

  • Updated PHPUnit tests to match new tag rendering (no trailing newlines)
  • Ensured all meta tag classes are fully covered with unit tests

📚 Documentation

  • Improved README.md (badges, clearer usage section, changelog link)
  • Added instructions for running tests via vendor\bin\phpunit

This is a patch release with no breaking changes.

v2.0.0 – Major Refactor & Clean API

12 Sep 07:25

Choose a tag to compare

This release introduces a major refactor of lemonade/component_meta.

  • Cleaner and more extensible API
  • Unified entity interface (MetaEntityInterface)
  • Simplified tag classes with AbstractTag
  • MetaFactory is now Stringable and easier to extend

⚠️ This version contains breaking changes (see details below).


Changelog

[2.0.0] - 2025-09-12

Changed

  • Refactored tag classes:
    • Introduced AbstractTag for shared logic
    • MetaTag, OpenGraphTag, TwitterTag, DcTag, LinkTag now extend AbstractTag
    • TitleTag remains a special case with SimpleTagTrait
  • Added MetaEntityInterface to unify all meta entities
  • Updated AbstractMetaEntity to use readonly MetaData injection
  • Simplified MetaFactory:
    • Uses collection of entities instead of hardcoded calls
    • Now implements Stringable

Breaking Changes

  • Direct construction of tag classes may differ (all now require key, content)
  • MetaFactory internals refactored; behavior is the same but extending it requires changes
  • MetaData::getTitle() replaces setDynamicTitle()

[1.0.0] - 2025-09-12

  • Initial stable release of lemonade/component_meta

[0.1.0] - 2018-05-01

  • First experimental attempt at OOP meta handling
  • Based on large associative arrays with many setters
  • Entities used magic key names (_appAuthor, _appKeywords, …)
  • Verbose and hard to extend
  • Prototype version, never intended for production

v1.0.0

11 Sep 20:11

Choose a tag to compare