About Features Downloads Getting Started Documentation Events Support GitHub

Love VuFind®? Consider becoming a financial supporter. Your support helps build a better VuFind®!

Site Tools


Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:plugins:auto_injection_interfaces

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
development:plugins:auto_injection_interfaces [2015/12/09 19:45] – ↷ Links adapted because of a move operation demiankatzdevelopment:plugins:auto_injection_interfaces [2020/03/03 20:17] demiankatz
Line 5: Line 5:
 Here are the relevant interfaces: Here are the relevant interfaces:
  
 +  * \Laminas\Log\LoggerAwareInterface - Get access to the VuFind\Logger service
   * \VuFind\Db\Table\DbTableAwareInterface - Get access to the VuFind\DbTablePluginManager service   * \VuFind\Db\Table\DbTableAwareInterface - Get access to the VuFind\DbTablePluginManager service
   * \VuFind\I18n\Translator\TranslatorAwareInterface - Get access to the VuFind\Translator service   * \VuFind\I18n\Translator\TranslatorAwareInterface - Get access to the VuFind\Translator service
   * \VuFindHttp\HttpServiceAwareInterface - Get access to the VuFind\Http service   * \VuFindHttp\HttpServiceAwareInterface - Get access to the VuFind\Http service
-  * \Zend\Log\LoggerAwareInterface - Get access to the VuFind\Logger service 
-  * \Zend\ServiceManager\ServiceLocatorAwareInterface - Get access to the plugin manager that constructed the current object 
   * \ZfcRbac\Service\AuthorizationServiceAwareInterface - Get access to the authorization service (for permission checks)   * \ZfcRbac\Service\AuthorizationServiceAwareInterface - Get access to the authorization service (for permission checks)
- 
-You can also implement a setPluginManager() method as an alternative to implementing the \Zend\ServiceManager\ServiceLocatorAwareInterface; the result is the same. 
  
 ===== Traits ===== ===== Traits =====
Line 22: Line 19:
   * \VuFindHttp\HttpServiceAwareTrait   * \VuFindHttp\HttpServiceAwareTrait
   * \VuFind\Log\LoggerAwareTrait   * \VuFind\Log\LoggerAwareTrait
-  * \Zend\ServiceManager\ServiceLocatorAwareTrait 
   * \ZfcRbac\Service\AuthorizationServiceAwareInterface   * \ZfcRbac\Service\AuthorizationServiceAwareInterface
 +
 +===== Deprecated/Removed Functionality =====
 +
 +As the framework behind VuFind has evolved, auto-injection has been recognized as an anti-pattern in many situations, and it is now largely discouraged. Thus, some related capabilities have been scaled back or removed.
 +
 +  * \Zend\ServiceManager\ServiceLocatorAwareTrait used to trigger auto-injection of the top-level service manager. As of VuFind 4.0, it is no longer supported.
 +  * You used to be able to implement a setPluginManager() method as an alternative to implementing the \Zend\ServiceManager\ServiceLocatorAwareInterface; the result was the same. Support for setPluginManager was removed starting with VuFind 5.0.
 +  * In VuFind 7.0, all Zend services were renamed to Laminas services because of the rebranding of the framework.
 +
 ---- struct data ---- ---- struct data ----
 ---- ----
  
development/plugins/auto_injection_interfaces.txt · Last modified: 2020/03/03 20:26 by demiankatz