ใน Magento 2.1 มีรายชื่อผู้ให้บริการ UI Component 25 รายการ / กริดข้อมูลที่กำหนดค่าและใช้งานอยู่ คลาสและui_component
ไฟล์ผู้ให้บริการข้อมูลของพวกเขาอยู่ด้านล่าง
Magento\Bundle\Ui\DataProvider\Product\BundleDataProvider bundle_product_listing.xmlMagento\Catalog\Ui\DataProvider\Product\Attributes\Listing product_attributes_grid.xml
Magento\Catalog\Ui\DataProvider\Product\ProductCustomOptionsDataProvider product_custom_options_listing.xml
Magento\Catalog\Ui\DataProvider\Product\ProductDataProvider configurable_associated_product_listing.xml
Magento\Catalog\Ui\DataProvider\Product\ProductDataProvider product_listing.xml
Magento\Catalog\Ui\DataProvider\Product\Related\CrossSellDataProvider crosssell_product_listing.xml
Magento\Catalog\Ui\DataProvider\Product\Related\RelatedDataProvider related_product_listing.xml
Magento\Catalog\Ui\DataProvider\Product\Related\UpSellDataProvider upsell_product_listing.xml
Magento\Cms\Ui\Component\DataProvider cms_block_listing.xml
Magento\Cms\Ui\Component\DataProvider cms_page_listing.xml
Magento\ConfigurableProduct\Ui\DataProvider\Attributes product_attributes_listing.xml
Magento\Customer\Ui\Component\DataProvider customer_listing.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider customer_online_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_creditmemo_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_invoice_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_shipment_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_view_creditmemo_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_view_invoice_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_view_shipment_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider search_synonyms_grid.xml
BraintreeTransactionsDataProvider (virtual type) braintree_report.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
Magento\GroupedProduct\Ui\DataProvider\Product\GroupedProductDataProvider grouped_product_listing.xml
Magento\Review\Ui\DataProvider\Product\ReviewDataProvider review_listing.xml
Magento\Theme\Ui\Component\Design\Config\DataProvider design_config_listing.xml
จากข้อมูลนี้ดูเหมือนว่ามีสองคลาสพื้นฐานสำหรับผู้ใช้โปรแกรมเมอร์สามารถใช้ส่วนประกอบพื้นฐานของกริด
- วีโอไอพี \ Framework \ ดู \ ธาตุ \ UIComponent \ dataprovider \ dataprovider
- วีโอไอพี \ Ui \ dataprovider \ AbstractDataProvider
Magento\Ui\DataProvider\AbstractDataProvider
ระดับดูเหมือนจะง่ายของทั้งสองและ (ดูเหมือนว่าจะ?) เพียง แต่ต้องใช้การตั้งค่ารูปแบบทรัพยากรวีโอไอพี Magento\Customer\Ui\Component\DataProvider
โมดูลกริดลูกค้าขึ้นอยู่กับคลาสนี้และดูเหมือนว่าจะมีฟังก์ชั่นการเรียงลำดับการกรองและอื่น ๆ ทั้งหมดที่จำเป็นสำหรับการแสดงรายการกริด
มีเหตุผลMagento\Framework\View\Element\UiComponent\DataProvider\DataProvider
อยู่หรือไม่หรือเป็นเพียงรหัสเก่า / ใหม่กว่าที่ใช้แนวทางที่แตกต่างในการสร้างผู้ให้บริการข้อมูล กล่าวอีกนัยหนึ่งการใช้Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
คุณลักษณะพิเศษใด ๆ ที่นำมาใช้กับตารางหรือทำให้ส่วนอื่น ๆของระบบทำงานกับตารางได้หรือไม่ ดูซอร์สโค้ดMagento\Framework\App\RequestInterface
ดูเหมือนว่าน่าสนใจเพราะมันบอกเป็นนัย ๆ ว่าคุณอาจรายงานฟังก์ชั่น "ฟรี" กับกริดเหล่านี้ อย่างไรก็ตามหากไม่มีรหัสซาฟารีที่กว้างขวางฉันไม่แน่ใจว่าจริงหรือไม่และฉันหวังว่าจะมีใครบางคนอธิบายอย่างชัดเจนว่าทำไมคุณถึงใช้คลาสหนึ่งเหนือคลาสอื่น