En Magento 2.1, hay un total de 25 proveedores de datos de cuadrícula / listado de componentes UI configurados y en uso. Sus clases y ui_component
archivos de proveedor de datos se enumeran a continuación
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
Según esta información, parece que hay dos clases base que los programadores de usuarios finales pueden usar para basar sus componentes de cuadrícula en
- Magento \ Framework \ View \ Element \ UiComponent \ DataProvider \ DataProvider
- Magento \ Ui \ DataProvider \ AbstractDataProvider
La Magento\Ui\DataProvider\AbstractDataProvider
clase parece ser la más simple de las dos y (¿parece?) Solo requiere la configuración de un modelo de recursos de Magento. El Magento\Customer\Ui\Component\DataProvider
módulo de cuadrícula del cliente se basa en esta clase y parece tener todas las funciones de clasificación, filtrado, etc. necesarias para un listado de cuadrícula.
¿Existe alguna razón para que Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
exista, o es solo un código más antiguo / más nuevo que adopta un enfoque diferente para crear un proveedor de datos? En otras palabras, ¿el uso de Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
trae algunas características adicionales a la tabla o permite que otras partes del sistema hagan cosas con la cuadrícula? Al mirar el código fuente, Magento\Framework\App\RequestInterface
parece intrigante, ya que implica que podría estar informando la funcionalidad "gratis" con estas cuadrículas. Sin embargo, sin un extenso safari de código, no estoy seguro de si eso es cierto o no, y espero que alguien tenga una explicación clara de por qué usaría una clase sobre la otra.