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
Last revisionBoth sides next revision
development:plugins:auto_injection_interfaces [2017/11/01 20:01] – [Auto Injection Interfaces] 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 :!: No longer supported beginning with VuFind 4.0. 
   * \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. :!: setPluginManager no longer triggers auto-injection starting with VuFind 5.0. 
  
 ===== 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