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

Next revision
Previous revision
Next revisionBoth sides next revision
vufind2:auto_injection_interfaces [2013/01/11 13:01] – created demiankatzdevelopment:plugins:auto_injection_interfaces [2015/12/09 19:42] – ↷ Links adapted because of a move operation demiankatz
Line 1: Line 1:
 ====== Auto Injection Interfaces ====== ====== Auto Injection Interfaces ======
  
-Any VuFind plugin accessed through a [[general_plugin_information|standard plugin interface]] can implement certain "-Aware" interfaces in order to be automatically injected with dependencies.  This is a convenient way to gain access to other elements of the VuFind system.+Any VuFind plugin accessed through a [[vufind2:general_plugin_information|standard plugin interface]] can implement certain "-Aware" interfaces in order to be automatically injected with dependencies.  This is a convenient way to gain access to other elements of the VuFind system.
  
 Here are the relevant interfaces: Here are the relevant interfaces:
Line 10: Line 10:
   * \Zend\Log\LoggerAwareInterface - Get access to the VuFind\Logger 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   * \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)
  
 You can also implement a setPluginManager() method as an alternative to implementing the \Zend\ServiceManager\ServiceLocatorAwareInterface; the result is the same. You can also implement a setPluginManager() method as an alternative to implementing the \Zend\ServiceManager\ServiceLocatorAwareInterface; the result is the same.
 +
 +===== Traits =====
 +
 +Starting with VuFind 2.4, Traits are provided which can be used in addition to interfaces to automatically implement interface-specific methods (and in some case, useful related utility methods). These Traits can help to reduce redundancy in your code:
 +
 +  * \VuFind\Db\Table\DbTableAwareTrait
 +  * \VuFind\I18n\Translator\TranslatorAwareTrait
 +  * \VuFindHttp\HttpServiceAwareTrait
 +  * \VuFind\Log\LoggerAwareTrait
 +  * \Zend\ServiceManager\ServiceLocatorAwareTrait
 +  * \ZfcRbac\Service\AuthorizationServiceAwareInterface
 ---- struct data ---- ---- struct data ----
 ---- ----
  
development/plugins/auto_injection_interfaces.txt · Last modified: 2020/03/03 20:26 by demiankatz