У Magento 2.1 є 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
Виходячи з цієї інформації, схоже, що два програмісти базових класів кінцеві користувачі можуть використовувати для базування своїх компонентів сітки
- Magento \ Framework \ Перегляд \ Елемент \ UiComponent \ DataProvider \ DataProvider
- Magento \ Ui \ DataProvider \ AbstractDataProvider
Magento\Ui\DataProvider\AbstractDataProviderКлас , здається, простіше з двох, і (здається ,?) Вимагає тільки конфігурації моделі ресурсів Magento. Модуль сітки клієнта Magento\Customer\Ui\Component\DataProviderзаснований на цьому класі і, схоже, має всі функції сортування, фільтрування тощо, необхідні для переліку сітки.
Чи існує якась причина Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider- чи просто старший / новіший код використовують інший підхід до створення постачальника даних? Іншими словами, чи використовує Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderвнести якісь додаткові функції в таблицю, чи дозволяє іншим частинам системи робити справи з сіткою? Дивлячись на вихідний код, Magento\Framework\App\RequestInterfaceздається інтригуючим - оскільки це означає, що ви можете звітувати про функціональність "безкоштовно" за допомогою цих сіток. Однак без широкого кодового сафарі я не впевнений, правда це чи ні, і я сподіваюся, що хтось має чітке пояснення, чому ви б використовували один клас над іншим.