This module provides "configuration via annotation" support for Zend Framework 2.
Out of the box it allows to define routes, service and all the ServiceManager-based implementations (as controllers, view helpers, etc).
The goal of this project is to get rid of large configuration arrays in application configs.
- PHP >= 5.5.0
- NOTE: if you want to use Zend libraries from Zend Framework 2, use ~1.0 versions. Branch ~2.0 supports future versions of Zend Framework and may not be compatible with ZF 2.*
composer require alex-oleshkevich/zf-annotations
return array(
'modules' => array(
// other modules
'ZfAnnotation'
),
// other content
);
array(
'zf_annotation' => array(
// in which modules to search annotated classes
'scan_modules' => array(),
// here listed all annotations supported by the module
// add your own here
'annotations' => array(
'ZfAnnotation\Annotation\Route',
// ...
),
// listeners to events emitted by parser.
// they process class annotations and transforms them into config values
// add your own here.
'event_listeners' => array(
'ZfAnnotation\EventListener\RouteListener',
// ...
)
)
)
This module is pretty fast, but anyway, parsing of lots of files on each request takes time.
The module subscribes to ModuleEvent::EVENT_MERGE_CONFIG
and scans every time its is triggered. If you have option
module_listener_options.config_cache_enabled
enabled, annotation parser will not do parsing unless you set config_cache_enabled
to false or remove a cache file. More info about caching here.