Share Tạo mới controller plugin trong Zend framework 3

filiallion

Administrator
Staff member
Administrator
Messages
585
Points
10
Language
Tiếng Việt
Controller plugin trong Zend framework cũng gần tương tự như view helper, chỉ khác ở chỗ controller plugin được sử dụng trong controller còn view helper được sử dụng trong view. Thành phần controller plugin đã có từ Zend framework 1 và cho tới phiên bản 3 thì thành phần này vẫn đóng vai trò hỗ trợ rất tốt trong quá trình phát triển ứng dụng web bằng Zend framework.

Mặc định, Zend framework 3 hỗ trợ rất nhiều controller plugin đã được xây dựng sẵn như Forward, Layout, Params, Redirect, Url... giúp các bạn lập trình thực hiện các tác vụ thường gặp một cách dễ dàng. Ví dụ, các bạn có thể dễ dàng lấy các biến giá trị từ phương thức get, post hay từ route bằng controller plugin Params cũng như có thể dễ dàng chuyển hướng website bằng Redirect. Ngoài các controller plugin mặc định do Zend framework 3 cung cấp, các bạn còn có thể tự định nghĩa các controller plugin riêng.

Trước tiên, các bạn tạo lớp controller plugin, tôi đặt tên là My như sau:
PHP:
<?php
namespace Application\Controller\Plugin;

use Zend\Mvc\Controller\Plugin\AbstractPlugin;

class My extends AbstractPlugin
{
    public function __invoke()
    {
        //Thực hiện chức năng nào đó
    }
}
Với lớp trên thì các bạn đã tạo thành công một controller plugin rồi, bây giờ các bạn cần phải đăng ký controller plugin này để sử dụng trong các controller. Để đăng ký một controller plugin trong Zend framework 3 có nhiều cách, tôi sẽ hướng dẫn các bạn cách sử dụng tập tin cấu hình của module như sau:
PHP:
[
    'controller_plugins' => [
        'factories' => [
            Application\Controller\Plugin\My::class => Zend\ServiceManager\Factory\InvokableFactory::class
        ],
        'aliases' => [
            'my' => Application\Controller\Plugin\My::class
        ]
    ]
]
Các bạn có thể tìm hiểu thêm về controller plugin trong Zend framework 3 tại địa chỉ https://docs.zendframework.com/zend-mvc/plugins.
 
Back
Top