yireo / magento2-common-view-models
Installs: 689
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 3
Forks: 2
Open Issues: 1
Type:magento2-module
Requires
- php: >=7.2.0
- magento/framework: ^102.0|^103.0
- magento/module-catalog: ^102.0|^103.0|^104.0
Requires (Dev)
- composer/composer: *@dev
- phpunit/phpunit: *
This package is auto-updated.
Last update: 2024-11-15 10:24:02 UTC
README
Gathering of common useful ViewModels for usage in the XML layout.
Installation
composer require yireo/magento2-common-view-models bin/magento module:enable Yireo_CommonViewModels
Roadmap
There is no roadmap. Feel free to open an Issue to request creation of a new ViewModel or enhancement of an existing ViewModel. Feel free to submit PRs. I'll treat it respectfully once I drink my morning coffee.
Generic usage of ViewModels
In Magento 2.2.1 or newer, create a XML layout instruction:
<block name="example" template="example.phtml"> <arguments> <argument name="example_view_model" xsi:type="object">Yireo\CommonViewModels\ViewModel\Example</argument> </arguments> </block>
In your example.phtml
:
<?php /** @var \Yireo\CommonViewModels\ViewModel\Example $viewModel */ $exampleViewModel = $block->getExampleViewModel(); ?>
Yireo\CommonViewModels\ViewModel\Product
Initialize the product with the data you have:
$productViewModel->setProduct($product); $productViewModel->setProductById($productId); $productViewModel->setProductBySku($productSku);
And then use it:
$productViewModel->getProduct(); $productViewModel->getSku();
Yireo\CommonViewModels\ViewModel\CurrentProduct
Only working when the page is catalog/product/view
and when the id
is set in the URL. Initialize it with the request first:
$currentProductViewModel->initialize();
And then use it:
$currentProductViewModel->getProduct(); $currentProductViewModel->getSku();
The CurrentProduct
ViewModel extends the Product
ViewModel through injection.
Yireo\CommonViewModels\ViewModel\Products
Use existing filters:
$productsViewModel->getProductsByName('%hoodie%'); $productsViewModel->getProductsBySku('B01%');
or build your own:
$searchCriteriaBuilder = $productsViewModel->getSearchCriteriaBuilder(); $productsViewModel->getProducts($searchCriteriaBuilder->create());
Yireo\CommonViewModels\ViewModel\FormKey
Usage:
$formkeyViewModel->getToken();