In Magento 2.1, ci sono 25 fornitori di dati di griglia / elenco dei componenti dell'interfaccia utente configurati e in uso. Le loro classi e ui_component
file del fornitore di dati sono elencati di seguito
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
Sulla base di queste informazioni, sembrano esserci due classi base che i programmatori finali possono usare per basare i loro componenti della griglia
- Magento \ Framework \ Visualizza \ elemento \ UIComponent \ DataProvider \ DataProvider
- Magento \ Ui \ FornitoreDati \ AbstractDataProvider
La Magento\Ui\DataProvider\AbstractDataProvider
classe sembra più semplice delle due e (sembra?) Richiede solo la configurazione di un modello di risorse Magento. Il Magento\Customer\Ui\Component\DataProvider
modulo della griglia del cliente si basa su questa classe e sembra avere tutte le funzionalità di ordinamento, filtro, ecc. Necessarie per un elenco della griglia.
C'è un motivo per cui Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
esiste - o è solo il codice più vecchio / più recente che ha un approccio diverso alla creazione di un fornitore di dati? In altre parole, l'utilizzo di Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
porta qualche funzionalità extra sul tavolo o consente ad altre parti del sistema di fare cose con la griglia? Guardando il codice sorgente, Magento\Framework\App\RequestInterface
sembra intrigante - poiché implica che potresti segnalare funzionalità "gratis" con queste griglie. Tuttavia, senza un ampio safari in codice, non sono sicuro che sia vero o no, e spero che qualcuno abbia una chiara spiegazione del perché dovresti usare una classe sull'altra.