A Magento 2 module that introduces convenient global utilities for use in .phtml
templates, helping you write cleaner, more expressive code.
Use simple closure aliases instead of long $escaper
method calls:
Alias | Equivalent |
---|---|
$eHtml() |
$escaper->escapeHtml() |
$eJs() |
$escaper->escapeJs() |
$eUrl() |
$escaper->escapeUrl() |
$eHtmlAttr() |
$escaper->escapeHtmlAttr() |
Example:
<?= $eHtml(__('Hello world!')) ?>
Instead of:
<?= $escaper->escapeHtml(__('Hello world!')) ?>
Fetch a ViewModel instance directly inside a .phtml
file without having to declare it in layout XML:
<?php
use Namespace\Module\ViewModel\YourViewModel;
/** @var Closure $viewModelProvider */
$viewModel = $viewModelProvider(YourViewModel::class);
?>
Insert a hidden form key input in one line:
<form>
<?= $formKey ?>
...
</form>
Simple, secure, and saves time.
Generate a valid CSP nonce for inline scripts:
<script nonce="<?= $eHtmlAttr($nonce) ?>">
// safe inline script
</script>
Essential for security-conscious development.
Apply dynamic class names with ease and clarity:
Before:
<div class="flex items-center <?= $escaper->escapeHtmlAttr($condition1 ? 'justify-between' : 'justify-center') ?> <?= $escaper->escapeHtmlAttr($i > 10 ? 'bg-orange' : '') ?>">
...
</div>
After:
<div class="<?= $classNames([
'flex items-center',
$condition1 ? 'justify-between' : 'justify-center',
'bg-orange' => $i > 10
]) ?>">
...
</div>
Improves readability and maintainability of conditional UI.
composer require magehx/mage-template-utils
- PHP 8.1+
MIT – free to use and modify.
PRs and issues are welcome. Let’s make Magento templating less painful!