MageHx_MageTemplateUtils
August 24, 2025 Β· View on GitHub
A Magento 2 module that introduces convenient global utilities for use in .phtml templates, helping you write cleaner, more expressive code.
β¨ Features
π Escaper Shortcuts
Use simple closure aliases instead of long $escaper method calls:
| Alias | Equivalent |
|---|---|
$esc->html() | $escaper->escapeHtml() |
$esc->js() | $escaper->escapeJs() |
$esc->url() | $escaper->escapeUrl() |
$esc->htmlAttr() | $escaper->escapeHtmlAttr() |
Example:
<?= $esc->html(__('Hello world!')) ?>
Instead of:
<?= $escaper->escapeHtml(__('Hello world!')) ?>
π¦ ViewModel Provider β $viewModelProvider
Fetch a ViewModel instance directly inside a .phtml file without having to declare it in layout XML:
<?php
use Namespace\Module\ViewModel\YourViewModel;
use MageHx\MageTemplateUtils\Model\ViewModelProvider;
/** @var ViewModelProvider $viewModelProvider */
$viewModel = $viewModelProvider->get(YourViewModel::class);
?>
π§Ύ Form Key Helper β $formKey
Insert a hidden form key input in one line:
<form>
<?= $formKey ?>
...
</form>
Simple, secure, and saves time.
π CSP Nonce Provider β $nonce
Generate a valid CSP nonce for inline scripts:
<script nonce="<?= $esc->htmlAttr($nonce) ?>">
// safe inline script
</script>
Essential for security-conscious development.
π¨ Conditional Class Names β $classNames
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.
π¦ Installation
composer require magehx/mage-template-utils
π Requirements
- PHP 8.1+
π οΈ License
MIT β free to use and modify.
π¬ Feedback / Contributions
PRs and issues are welcome. Letβs make Magento templating less painful!