Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:plugins:controllers
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
development:plugins:controllers [2015/12/11 16:52] – ↷ Links adapted because of a move operation demiankatz | development:plugins:controllers [2020/05/12 12:11] – [Overriding an Existing Controller] demiankatz | ||
---|---|---|---|
Line 5: | Line 5: | ||
===== Background ===== | ===== Background ===== | ||
- | A full description of Zend Framework 2 controllers is beyond the scope of this page, but in a nutshell: | + | A full description of Laminas |
**Controller workflow:** | **Controller workflow:** | ||
Line 17: | Line 17: | ||
* Each action method in a controller needs to return either data to pass to a view or a response object if a non-standard action (like a redirect) is necessary. | * Each action method in a controller needs to return either data to pass to a view or a response object if a non-standard action (like a redirect) is necessary. | ||
- | Some of the resources on the [[development: | + | Some of the resources on the [[development: |
===== VuFind-Specific Controller Conventions ===== | ===== VuFind-Specific Controller Conventions ===== | ||
Line 30: | Line 30: | ||
To override an existing controller, follow these steps: | To override an existing controller, follow these steps: | ||
- | * Create a [[vufind2:customizing_vufind_2.0# | + | * Create a [[development:architecture: |
- | * Create a new class in your module' | + | * Create a new class in your module' |
- | * In your module' | + | * If you used the code generator, you are now done. If you are setting things up manually, you will also need to add some configuration to activate your new class. |
< | < | ||
- | $config = array( | + | $config = [ |
- | ' | + | ' |
- | 'invokables' => array( | + | 'factories' => [ |
- | 'controllername' => ' | + | 'YourNamespace\Controller\ControllerNameController' |
- | | + | ], |
- | | + | ' |
- | ); | + | ' |
+ | | ||
+ | | ||
+ | ]; | ||
</ | </ | ||
Line 52: | Line 55: | ||
==== Example - How to add a new page to your theme ==== | ==== Example - How to add a new page to your theme ==== | ||
+ | |||
+ | :!: This example is out of date; it will be updated soon to reflect VuFind 7.0 standards. | ||
// Note: this example shows how to modify the VuFind core; localizing changes to a separate module requires some additional work. // | // Note: this example shows how to modify the VuFind core; localizing changes to a separate module requires some additional work. // | ||
Line 58: | Line 63: | ||
It extends AbstractBase and contains just a function that returns an array: | It extends AbstractBase and contains just a function that returns an array: | ||
- | class | + | class |
{ | { | ||
/** | /** | ||
* | * | ||
- | * @return \Zend\View\Model\ViewModel | + | * @return \Laminas\View\Model\ViewModel |
*/ | */ | ||
public function homeAction() | public function homeAction() |
development/plugins/controllers.txt · Last modified: 2021/08/03 14:04 by demiankatz