Skip to content

v0.7

Compare
Choose a tag to compare
@Articus Articus released this 04 Apr 16:38
· 16 commits to master since this release

New features

  • new metadata provider for PHP 8 - Articus\PathHandler\MetadataProvider\PhpAttribute. It allows to declare metadata via PHP attributes.

Migration notes

Library configuration structure was slightly rearranged to simplify metadata provider switching. Nothing drastic:

  • metadata provider and all plugin managers are now configured as separate services by default
  • route injection factory was moved from Articus\PathHandler\RouteInjection\Factory to Articus\PathHandler\RouteInjectionFactory

So you have to adjust your application configuration from something like:

dependencies:
  factories:
    Mezzio\Router\RouterInterface: Articus\PathHandler\RouteInjection\Factory

Articus\PathHandler\RouteInjection\Factory:
  paths:
    '':
    - My\Handler
  handlers:
    factories:
      My\Handler: My\HandlerFactory
  consumers:
    factories:
      My\Consumer: My\ConsumerFactory
  attributes:
    factories:
      My\Attribute: My\AttributeFactory
  producers:
    factories:
      My\Producer: My\ProducerFactory

to

dependencies:
  factories:
    Mezzio\Router\RouterInterface: Articus\PathHandler\RouteInjectionFactory
    Articus\PathHandler\MetadataProviderInterface: Articus\PathHandler\MetadataProvider\Factory\Annotation
    Articus\PathHandler\Handler\PluginManager: Articus\PathHandler\Handler\Factory\PluginManager
    Articus\PathHandler\Consumer\PluginManager: Articus\PathHandler\Consumer\Factory\PluginManager
    Articus\PathHandler\Attribute\PluginManager: Articus\PathHandler\Attribute\Factory\PluginManager
    Articus\PathHandler\Producer\PluginManager: Articus\PathHandler\Producer\Factory\PluginManager

Articus\PathHandler\RouteInjectionFactory:
  paths:
    '':
    - My\Handler

Articus\PathHandler\Handler\PluginManager:
  factories:
    My\Handler: My\HandlerFactory
Articus\PathHandler\Consumer\PluginManager:
  factories:
    My\Consumer: My\ConsumerFactory
Articus\PathHandler\Attribute\PluginManager:
  factories:
    My\Attribute: My\AttributeFactory
Articus\PathHandler\Producer\PluginManager:
  factories:
    My\Producer: My\ProducerFactory

Check updated documentation for details.