PHPackages                             dmitrynaum/sam - 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. dmitrynaum/sam

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

dmitrynaum/sam
==============

Simple assset manager

1.0.7(10y ago)240MITPHPPHP &gt;=5.5.9

Since Mar 21Pushed 10y ago1 watchersCompare

[ Source](https://github.com/DmitryNaum/SAM)[ Packagist](https://packagist.org/packages/dmitrynaum/sam)[ Docs](https://github.com/DmitryNaum/SAM)[ RSS](/packages/dmitrynaum-sam/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (7)Dependencies (5)Versions (8)Used By (0)

SAM - Simple Asset Manager
==========================

[](#sam---simple-asset-manager)

Это простой asset manager для управления js и css файлами.

[![Build Status](https://camo.githubusercontent.com/fc74277e673ab6eadc1f8ced0a398822258be43bf55bc28980dabda8046b1820/68747470733a2f2f7472617669732d63692e6f72672f446d697472794e61756d2f53414d2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/DmitryNaum/SAM)[![codecov.io](https://camo.githubusercontent.com/91a2026acce20215db5bede6bc98dbde8e1118f64cf71cca6c12464f4441d5fe/68747470733a2f2f636f6465636f762e696f2f6769746875622f446d697472794e61756d2f53414d2f636f7665726167652e7376673f6272616e63683d6d6173746572)](https://codecov.io/github/DmitryNaum/SAM?branch=master)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/010c8062b9f8dc568f8160a7f6720a4d444385467141cd37266253cf36247a2f/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f446d697472794e61756d2f53414d2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/DmitryNaum/SAM/?branch=master)[![Latest Stable Version](https://camo.githubusercontent.com/f4842ed78fcef377b34cd77d63560f08988465135b71ff175147d0060a90ea60/68747470733a2f2f706f7365722e707567782e6f72672f646d697472796e61756d2f73616d2f762f737461626c65)](https://packagist.org/packages/dmitrynaum/sam)[![Total Downloads](https://camo.githubusercontent.com/999916f3cb4747e0637b7e62c913f598d87b44fa8577d5b9612d806391e86d31/68747470733a2f2f706f7365722e707567782e6f72672f646d697472796e61756d2f73616d2f646f776e6c6f616473)](https://packagist.org/packages/dmitrynaum/sam)[![Latest Unstable Version](https://camo.githubusercontent.com/19a7cdd19f2b54d721018e8b687ce3bd3547757358663405504c05e06cc37fa9/68747470733a2f2f706f7365722e707567782e6f72672f646d697472796e61756d2f73616d2f762f756e737461626c65)](https://packagist.org/packages/dmitrynaum/sam)[![License](https://camo.githubusercontent.com/fd335c821050d085fdc3acd4359ed13a26215f93ae6bf9f62c7adf019d1f5e05/68747470733a2f2f706f7365722e707567782e6f72672f646d697472796e61756d2f73616d2f6c6963656e7365)](https://packagist.org/packages/dmitrynaum/sam)

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

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

- Объединять разные css и js файлы в один
- Сжимать css и js (минифицировать)
- Контролировать кэш браузера
- Компилировать asset`ы на лету в Development окружении
- Использовать удаленные js и css (например с CDN)
- Работа с inline css и js

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

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

```
composer require dmitrynaum/sam

```

Использование
-------------

[](#использование)

В корне проекта должен находится файл настроек `sam.json` в котором описаны все необходимые для SAM`а параметры

```
{
    "devServerAddress" : "Адрес сервера на котором работает сервер компиляции ассетов на лету",
    "assetBasePath" : "Базовая папка куда будут сохранены все asset`ы. Должна быть доступна из web без учета rootDir!",
    "rootDir"       : "Публичная папка приложения (в которую можно попасть через WEB).",
    "resultMapPath" : "Путь до карты скомпилированных asset`ов ",
    "assets" : {
        "Название файла в который будет сохранен скомпилированный asset (app.css) является названием asset`а " : [
            "Файл который будет объединен с другими и записан в app.css",
            "Файл который будет объединен с другими и записан в app.css"
        ]
    }
}
```

Пример `sam.json`

```
{
    "devServerAddress" : "127.0.0.1:8090",
    "assetBasePath" : "build/",
    "rootDir"       : "public/",
    "resultMapPath" : "asset/map.json",
    "assets" : {
        "app.css" : [
            "https:///maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css",
            "jquery-ui.css",
            "asset/css/first.css",
            "asset/css/second.css"
        ],
        "jquery-ui.css" : [
            "asset/vendor/jquery-ui/jquery-ui.css",
            "asset/vendor/jquery-ui/skin.css"
        ]
    }

}
```

Asset файлы сохраняются в папку которая указана в `rootDir`+`assetBasePath`. Т.е. asset `app.css` из примера выше будет сохранен в `public/build/app.css`

Компиляция
----------

[](#компиляция)

Есть несколько режимов компиляции asset`ов.

1. Простая компиляция. SAM просто соберет все asset`ы

```
php vendor/bin/sam build

```

2. Компиляция с минификацией. Asset`ы будут собраны и минифицированы

```
php vendor/bin/sam build -m

```

3. Компиляция с заморозкой. Asset`ы будут собраны и в название результирующих файлов будут добавлены их хэши. Это помогает избежать проблем с кэшем браузера

```
php vendor/bin/sam build -f

```

4. Компиляция с минификацией и заморозкой.

```
php vendor/bin/sam build -m -f

```

Также компилятору asset`ов можно указать путь до `sam.json`.

```
php vendor/bin/sam build my_sam.json -m -f

```

Рендеринг
---------

[](#рендеринг)

Для того что бы добавить asset в шаблон Вашего сайта, выполните 2 простые команды

```
