PHPackages                             herroffizier/yiisset - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. herroffizier/yiisset

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

herroffizier/yiisset
====================

Client script alternative implementation for Yii with minifying, compressing, merging, parallel loading and CoffeeScript support

035PHP

Since Aug 19Pushed 11y ago1 watchersCompare

[ Source](https://github.com/herroffizier/yiisset)[ Packagist](https://packagist.org/packages/herroffizier/yiisset)[ RSS](/packages/herroffizier-yiisset/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Yiisset
=======

[](#yiisset)

**Yiisset** представляет собой альтернативный client script для Yii.

**Yiisset** сокращает количество запросов к серверу, уменьшает объем передаваемого трафика и ускоряет загрузку страницы непосредственно в браузере, не меня при этом привычной логики работы с ресурсами приложения.

Проект появился как форк [yii-EClientScript](https://github.com/muayyad-alsadi/yii-EClientScript).

Возможности
-----------

[](#возможности)

Итак, **Yiisset** позволяет:

- объединять несколько ресурсов в один файл, корректно группируя скрипты по положению в теле страницы, а стили - по атрибуту media;
- минифицировать файлы;
- создавать сжатые копии файлов, что позволяет серверу не тратить время на сжатие файла перед отправкой клиенту;
- удалять инлайновые скрипты из тела страницы, что может быть полезно, если их много;
- использовать параллельную загрузку ресурсов на странице;
- компилировать CoffeeScript.

Установка
---------

[](#установка)

В своей работе **Yiisset** использует ряд сторонних инструментов, установить которые не составит никакой сложности для большинства популярных \*nix дистрибутивов. Однако, если вы не хотите этого делать, расширение просто отключит те фичи, в которых используются отсутствующие инструменты, и будет нормально работать.

Для простого объединения файлов и параллельной их загрузки достаточно минимального набора, который, скорее всего, у вас уже есть:

- **\*nix** (расширение **не рассчитано** на работу в среде Windows!)
- **PHP** &gt;= **5.3**
- **Yii** &gt;= **1.1.14**

Для всего остального вам понадобится [Node.js](http://nodejs.org/) и его модули:

- [UglifyJS](https://github.com/mishoo/UglifyJS) для минификации скриптов;
- [clean-css](https://github.com/GoalSmashers/clean-css) для минификации стилей;
- [CoffeeScript](http://coffeescript.org) для компиляции CoffeeScript.

Модули можно установить следующей командой:

```
npm install -g coffee uglifyjs clean-css

```

Настройка
---------

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

Для подключения расширения достаточно заменить компонент:

```
'clientScript' => array(
    'class' => 'vendors.herroffizier.yiisset.components.EClientScript',
),
```

Настроек по умолчанию будет вполне достаточно для того, чтобы расширение выполняло все свои функции, однако для удобства отладки в своих проектах я использую следующий конфиг:

```
'clientScript' => array(
    'class' => 'vendors.herroffizier.yiisset.components.EClientScript',
    // объединять ли стили
    'combineCssFiles' => !YII_DEBUG,
    // оптимизировать ли стили
    'optimizeCssFiles' => !YII_DEBUG,
    // объединять ли скрипты
    'combineScriptFiles' => !YII_DEBUG,
    // оптимизировать ли скрипты
    'optimizeScriptFiles' => !YII_DEBUG,
    // сохранять ли сжатые копии файлов
    'saveGzippedCopy' => !YII_DEBUG,
),
```

Наконец, для того, чтобы ресурсы приложения были сгруппированы по номеру ревизии проекта, можно заменить ещё один компонент:

```
'assetManager' => array(
    'class' => 'vendors.herroffizier.yiisset.components.EAssetManager',
    // при forceCopy = true Yiisset будет обрабатывать ресурсы проекта при каждом запросе
    'forceCopy' => YII_DEBUG,
    // в константе REVISION хранится номер ревизии проекта
    'assetVersion' => !YII_DEBUG ? REVISION : null,
),
```

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 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/820232d3f5de11b08332a98ca93b025ab46d7e3563ddaec2ce6d042828718983?d=identicon)[herroffizier](/maintainers/herroffizier)

---

Top Contributors

[![korotin](https://avatars.githubusercontent.com/u/277992?v=4)](https://github.com/korotin "korotin (32 commits)")

### Embed Badge

![Health badge](/badges/herroffizier-yiisset/health.svg)

```
[![Health](https://phpackages.com/badges/herroffizier-yiisset/health.svg)](https://phpackages.com/packages/herroffizier-yiisset)
```

###  Alternatives

[thalidzhokov/country-codes

CountryCodes PHP Class to get array of countries with ISO 3166-1 alpha-2, ISO 3166-1 alpha-3, ISO 3166-1 numeric and ISD codes it can provide following information related to country

13111.5k](/packages/thalidzhokov-country-codes)

PHPackages © 2026

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