No Magento 2.1, existem 25 provedores de dados de grade / lista de componentes de interface do usuário configurados e em uso. Suas classes e ui_component
arquivos do provedor de dados estão listados abaixo
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
Com base nessas informações, parece haver duas classes básicas que os programadores de usuários finais podem usar para basear seus componentes de grade em
- Magento \ Framework \ Visualizar \ Elemento \ UiComponent \ DataProvider \ DataProvider
- Magento \ Ui \ DataProvider \ AbstractDataProvider
A Magento\Ui\DataProvider\AbstractDataProvider
classe parece ser a mais simples das duas, e (parece?) Requer apenas a configuração de um modelo de recursos Magento. O Magento\Customer\Ui\Component\DataProvider
módulo de grade do cliente é baseado nessa classe e parece ter todas as funcionalidades de classificação, filtragem etc. necessárias para uma listagem de grade.
Existe uma razão para a existência Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
- ou são apenas códigos mais antigos / mais recentes que adotam uma abordagem diferente para criar um provedor de dados? Em outras palavras, o uso de Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
traz recursos extras para a tabela ou permite que outras partes do sistema façam coisas com a grade? Olhando para o código-fonte, isso Magento\Framework\App\RequestInterface
parece intrigante - como implica que você pode estar relatando a funcionalidade "de graça" com essas grades. No entanto, sem um extenso safari de código, não tenho certeza se isso é verdade ou não, e espero que alguém tenha uma explicação clara sobre por que você usaria uma classe sobre a outra.