Việc sử dụng pagefactory trong Magento 2 là gì?


7

Mặc dù tôi giới thiệu một số blog của pagefactory, tôi không hiểu việc sử dụng trang nhà máy.

Có một mã trong bộ điều khiển. Bạn có thể vui lòng giải thích cho tôi làm thế nào nó hoạt động?

public function execute()
{
    return $this->_pageFactory->create();
}

2
Pagefactory được sử dụng để khởi tạo bố cục.
Ansar Husain

Câu trả lời:


8

Pagefactory được sử dụng để khởi tạo bố cục.

Nó hoạt động trong magento2 giống như trong magento1 đang làm với mã bên dưới

$this->_view->loadLayout();

 $this->_view->renderLayout();

Cảm ơn ngài, và bạn có thể giúp tôi một lần nữa. postfactory là gì.
Bhakti Thakkar

2

Không giống như Magento 1.x trong magento 2 giới thiệu các nhà máy được sử dụng để thiết lập và lấy dữ liệu của đối tượng đã cho. thực hành tốt nhất là, thay vì sử dụng quản lý đối tượng sử dụng các nhà máy.

Giống như Magento thực hiện tất cả các hoạt động một cách có hệ thống mà không thay đổi luồng yêu cầu. Vì vậy, nếu bất kỳ mô-đun nào ghi đè chức năng nên có dữ liệu mới nhất.


2

Nhà máy trang được sử dụng để tạo kết quả trang bằng cách khởi tạo bố cục. Trang nhà máy tạo đối tượng phản hồi trong exec ()

public function execute()
{
    return $this->pageResultFactory->create();
}

Khi bạn trả về một đối tượng kết quả trang từ phương thức thực thi, bạn đang bảo Magento khởi động bố cục chuẩn xử lý kết xuất trang tệp XML.


2

Magento2 sử dụng Mẫu thiết kế phương thức nhà máy trong đó nêu rõ định nghĩa và giao diện để tạo đối tượng, nhưng để các lớp con quyết định lớp nào sẽ khởi tạo. Mẫu thiết kế phương thức nhà máy cho phép một lớp trì hoãn khởi tạo các lớp con.

Các nhà máy là các lớp dịch vụ khởi tạo các lớp không thể tiêm, nghĩa là các mô hình đại diện cho một thực thể cơ sở dữ liệu. Chúng tạo ra một lớp trừu tượng giữa ObjectManager và mã doanh nghiệp.
Chúng là một loại lớp được tạo tự động.
Khi bạn tham chiếu một nhà máy trong một trình xây dựng lớp, trình quản lý đối tượng của Magento sẽ tạo lớp nhà máy nếu nó không tồn tại. Bạn có thể đi qua các bài viết sau để biết thêm chi tiết:


1

https://www.mageplaza.com/magento-2-module-development/factory-object-magento-2.html

Trong Magento 2, tất cả các hành động của bộ điều khiển phải trả về một cái gì đó, trái ngược với M1, trong đó một hành động của bộ điều khiển sẽ chỉ xuất ra một cái gì đó hoặc thực hiện chuyển hướng. Kết quả của phương thức thực thi từ mỗi bộ điều khiển được tạo trong Magento \ Framework \ App \ FrontContoder :: Clark () trên dòng $ result = $ actionInstance-> exec (); và đã trở lại.

Tùy thuộc vào loại kết quả trả về, một hành động khác nhau được thực hiện. Kết quả có thể và ví dụ:

\ Magento \ Framework \ View \ result \ Page - thực sự hiển thị html \ Magento \ Framework \ Controller \ result \ Redirect - chuyển hướng đến một trang khác \ Magento \ Framework \ Controller \ result \ Forward - chuyển tiếp sang một hành động khác (chuyển hướng nội bộ) \ Magento \ Framework \ Controller \ result \ Json - trả về một đối tượng json. \ Magento \ Framework \ Controller \ result \ Raw - trả về bất cứ điều gì bạn bảo nó trả về (chuỗi).

Kết quả cụ thểPageFactory là một phiên bản của \ Magento \ Framework \ View \ result \ PageFactory và khi gọi tạo trên lớp đó, nó trả về một thể hiện của \ Magento \ Framework \ View \ result \ Page được mô tả ở trên. Khi điều này được sử dụng và kết quả được trả về, điều đó có nghĩa là hành động của bạn sẽ trả về HTML. Nó có tác dụng tương tự như $ this-> loadLayout (); từ Magento 1. Khi bạn gọi tạo trên đối tượng resultPageFactory, nó thực sự tải bố cục

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.