PHPackages                             one234ru/html-dynamic - 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. one234ru/html-dynamic

ActiveLibrary

one234ru/html-dynamic
=====================

04PHP

Since Oct 5Pushed 7mo ago1 watchersCompare

[ Source](https://github.com/1234ru/html-dynamic)[ Packagist](https://packagist.org/packages/one234ru/html-dynamic)[ RSS](/packages/one234ru-html-dynamic/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Что это такое и для чего это нужно?
-----------------------------------

[](#что-это-такое-и-для-чего-это-нужно)

Это средство для каталогизации HTML-макетов страниц сайта плюс HTML-шаблонизатор.

Когда для сайта делается вёрстка, её обычно сдают в виде набора статических HTML-макетов. Если страница имеет различные варианты (например, цена на товар может быть обычная и со скидкой), это вызывает определенные сложности. Приходится либо запихивать все возможные варианты в один макет, отчего он никогда не выглядит так, как в жизни, и его сложно отлаживать, либо делать отдельный макет на каждый вариант или даже на различные их комбинации.

Данный инструмент позволяет ***генерировать варианты страниц для просмотра налету*** (без необходимости сохранения отдельными файлами) на основании статических макетов HTML-вёрстки и простой конфигурации вариантов.

При этом автоматически генерируется ***каталог всех возможных вариантов страниц***, который позволяет просмотреть любой вариант ровно в том виде, в котором он используется на сайте. Наличие такого каталога позволяет содержать макеты в порядке.

***Повторяющиеся части макетов*** (например, шапку и футер) ***можно переиспользовать***, вынося их в отдельный вложенный файл. Также доступны другие средства шаблонизации — ***циклы и подстановка данных*** (полезно для макетов, где есть длинные списки однотипных элементов, например, меню или товарный каталог). Используется [шаблонизатор websun](http://webew.ru/articles/3609.webew).

Что нужно для работы
--------------------

[](#что-нужно-для-работы)

Для функционирования средства требуется веб-сервер с подключенным интерпретатором PHP.

([Установка nginx и PHP на Windows](https://gist.github.com/1234ru/7d54192e375d8e703d14c063e56e614f))

### Настройка nginx

[](#настройка-nginx)

```
location ~ \.php$ {
   fastcgi_pass php-handler; # где-то должно быть такое: upstream php-handler { server unix:/run/php/php7.1-fpm.sock; }
   fastcgi_param SCRIPT_FILENAME $document_root$uri;
   include fastcgi_params;
}

index /index.php; # необязательно, но удобно, чтобы писать `/` вместо `/index.php`
```

Как подключить
--------------

[](#как-подключить)

1. Устанавливаем: `composer install one234ru/html-dynamic`.

`git submodule add https://github.com/1234ru/html-dynamic.git`
`git submodule update --init --recursive html-dynamic`

2. Далее:

```
mkdir html # Если каталог веб-сервера не отведен исключительно под html
cp -r vendor/one234ru/html-dynamic/example/* html
cd html
rm doc.md

# Далее создаем символическую ссылку на каталог index,
# чтобы его содержимое было видно через веб.

# Windows 10 и выше:
# Win+X -> Командная строка (администратор)
# mklink /D index ../vendor/one234ru/html-dynamic/index

# Linux:
# ln -s ../vendor/one234ru/html-dynamic/index index # для стилей и скриптов индекса
# Работают такие символические ссылки кроссплатформенно,
# так что их можно добавлять под управление git
```

Символическая ссылка (`ln -s`) нужна для доступа к js- и css-файлам библиотеки, если каталог `vendor` закрыт от доступа через веб.

В `index.php` меняем `..` на `html-dynamic` в подключении файла `HTMLdynamic.php`. Например, так: `sed -i 's/\.\./html-dynamic/' index.php`

3. Открываем `index-ajax.php` через браузер - он должен работать.

Как использовать
----------------

[](#как-использовать)

- `index-ajax.php` — точка входа
- `config.php` — конфигурация
- `example/doc.md` — черновик пояснений

При использовании внутри основного проекта
------------------------------------------

[](#при-использовании-внутри-основного-проекта)

В этом случае окружение разворачивается в подкаталоге основного проекта, и используются его пути к шаблонам, js- и css-файлам и php-библиотекам (в т.ч. websun).

Это позволяет избавиться от необходимости переноса файлов, т.к. они все уже на месте.

Как следствие, необходимо отказаться от использования переменной `*variants*` в шаблонах.

Всю логику составления данных нужно перенести в файлы `data.php`, они и должны учитывать `$_GET['v']`.

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance44

Moderate activity, may be stable

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/bd77b21d6b666e1667312dee933705103583e22280a835961017916531661ffc?d=identicon)[one234ru](/maintainers/one234ru)

---

Top Contributors

[![1234ru](https://avatars.githubusercontent.com/u/840808?v=4)](https://github.com/1234ru "1234ru (50 commits)")

### Embed Badge

![Health badge](/badges/one234ru-html-dynamic/health.svg)

```
[![Health](https://phpackages.com/badges/one234ru-html-dynamic/health.svg)](https://phpackages.com/packages/one234ru-html-dynamic)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
