PHPackages                             giantbits/yii2-htmx - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. giantbits/yii2-htmx

ActiveYii2-extension[Framework](/categories/framework)

giantbits/yii2-htmx
===================

HTMX-powered component framework for Yii2 — React/Vue-like DX with server-rendered components

v1.1.0(3mo ago)124↓90%MITPHPPHP &gt;=8.1

Since Mar 24Pushed 3mo agoCompare

[ Source](https://github.com/smeyerme/yii2-htmx)[ Packagist](https://packagist.org/packages/giantbits/yii2-htmx)[ RSS](/packages/giantbits-yii2-htmx/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (1)Versions (4)Used By (0)

yii2-htmx
=========

[](#yii2-htmx)

HTMX-powered component framework for Yii2. Build interactive UIs with server-rendered components — no JavaScript framework, no build tools.

Each component is a self-contained class + template pair that automatically gets an HTMX endpoint. User interactions trigger server-side actions, and HTMX swaps the fresh HTML into the DOM. The developer experience is similar to React/Vue but everything runs server-side.

Installation
------------

[](#installation)

```
composer require giantbits/yii2-htmx
```

The package auto-bootstraps via Yii2's extension system — no manual configuration needed. It registers:

- A `htmx-component/render` controller route (universal endpoint for all component requests)
- HTMX loaded from CDN

For Twig template support (recommended):

```
composer require yiisoft/yii2-twig:"~2.4"
```

And configure the renderer in your app config:

```
'components' => [
    'view' => [
        'renderers' => [
            'twig' => [
                'class' => 'yii\twig\ViewRenderer',
                'cachePath' => '@runtime/Twig/cache',
                'options' => ['auto_reload' => true],
            ],
        ],
    ],
],
```

Quick Example
-------------

[](#quick-example)

A component is two files side by side:

```
components/
├── Counter.php
└── Counter.view.twig

```

**Counter.php**

```
