Ai đó có thể đưa ra một số mẹo và/hoặc ví dụ về cách Trình cắm và Trình trợ giúp hành động khác nhau? Có những tình huống mà nhiệm vụ cụ thể có thể được thực hiện với một nhiệm vụ nhưng không phải là một nhiệm vụ khác? Đối với tôi, cả hai trông giống nhau hoặc ít hơn và tôi thường gặp khó khăn khi phải quyết định khi nào nên sử dụng cái gì ... Có sự khác biệt lớn nào không?Zend Framework: Plugin điều khiển và người trợ giúp hành động
Trả lời
Plugin điều khiển có thể móc vào bất kỳ bộ điều khiển nào trong quá trình định tuyến (preDispatch postDispatch, routeStartup, routeShutdown), giúp chúng cung cấp chức năng hậu trường như thực thi ACL.
Trình trợ giúp hành động dành cho các phân đoạn có thể sử dụng lại nhưng tùy chọn mà trình điều khiển của bạn có thể cần truy cập (redirector, flashMessenger).
Vì vậy, nếu bạn đang tạo một đoạn mã có thể sử dụng lại mà luôn luôn cần phải thực thi chính nó sau đó sử dụng một plugin điều khiển, nếu không bạn có thể muốn có một người trợ giúp hành động.
Bạn có thể nghĩ về nó theo cách này:
- người giúp đỡ hành động được sử dụng để thêm các phương pháp để điều khiển.
- Plugin bộ điều khiển được sử dụng để thêm định tuyến/gửi logic vào bộ điều khiển.
Vì vậy, hãy tự hỏi, tôi có phương pháp mà tôi muốn có thể gọi từ tất cả các hành động trong bộ điều khiển của tôi không? Hay tôi cần thêm logic vào quá trình định tuyến/gửi đi.
Bạn cũng có thể xem qua số Built in Action Helpers.
Người trợ giúp hành động cũng có quyền truy cập đối tượng điều khiển thực tế đang được thực thi. Plugin điều khiển chỉ có quyền truy cập vào FrontController, và do đó chỉ có tên bộ điều khiển và hành động.
Việc bạn sử dụng tùy thuộc vào ngữ cảnh bạn cần. Nếu bạn cần truy cập vào một đối tượng xem được gắn với một bộ điều khiển, ví dụ, bạn sẽ muốn có một Trình trợ giúp hành động.
Một bức tranh để minh họa sự khác biệt giữa các plugin và người trợ giúp hành động: ZF Sequence Flow
Cũng cần chú ý rằng, trong quá trình vòng đời front controller, các plugin có được sự kiểm soát (hoặc gọi) đầu tiên so với những người giúp đỡ hành động.
- 1. zend-framework, gọi một người trợ giúp hành động từ bên trong người trợ giúp hành động khác
- 2. Zend Trợ giúp hành động
- 3. Sử dụng trợ giúp xem trong bộ điều khiển trong Zend Framework
- 4. Truy cập người trợ giúp hành động từ các mô hình của tôi ở zend
- 5. Hành động crossdomain ajax trong Zend Framework
- 6. ASP.NET MVC - Nhận tên điều khiển và hành động hiện tại trong trình trợ giúp
- 7. Cách thêm người trợ giúp chế độ xem tùy chỉnh vào Zend Framework 2
- 8. Dao động và người trợ giúp HTML
- 9. Trình trợ giúp xem hành động trong Zend - Làm việc xung quanh?
- 10. Làm cách nào để chuyển các tham số bằng trình trợ giúp redirector trong Zend Framework?
- 11. Nhận tất cả các mô-đun, bộ điều khiển và hành động từ ứng dụng Zend Framework
- 12. Zend Framework - lấy bộ điều khiển phía trước từ bootstrap?
- 13. Zend-framework DB: HOẶC thay vì VÀ hành
- 14. Zend Framework 2 cho Zend Framework Newbie
- 15. Làm thế nào để sử dụng trình trợ giúp xem khung nhìn Zend Framework bên ngoài bộ điều khiển hoặc chế độ xem?
- 16. R tệp trợ giúp trên hệ điều hành khác nhau
- 17. Tự động gia nhập bảng mà không vi phạm hành vi mặc định trong Zend Framework
- 18. Thực hành tốt nhất để tạo điều khiển hoặc trợ giúp ASP.NET MVC là gì?
- 19. Codeigniter lấy tên bộ điều khiển trong trình trợ giúp
- 20. Có thể đăng ký người trợ giúp cho một mẫu bảng điều khiển duy nhất không?
- 21. Cách tìm kiếm trợ giúp bằng bàn điều khiển python
- 22. Rails xem người trợ giúp trong tập tin trợ giúp
- 23. OAuth trong Zend Framework 2
- 24. Thiết lập InvokeArg chính xác khi thực hiện Zend Framework điều khiển trong Zend_Test khai thác
- 25. Làm cách nào để có được hành động hiện tại trong Zend Framework?
- 26. Zend Framework: Sự khác nhau giữa các hàm init() và preDispatch() trong các đối tượng điều khiển là gì?
- 27. Zend Framework 2: các mục menu hoạt động
- 28. Symfony là trợ giúp cho việc phát triển plugin Wordpress
- 29. Zend Framework 2 autoloading
- 30. Thêm điều khiển vào Điều khiển người dùng động
Chỉ cần lưu ý rằng bộ điều khiển hành động cũng có thể tự thực thi vì chúng có móc preDispatch() và postDispatch(). ActionHelperBroker được sử dụng để kiểm soát điều này. –