2017 © Pedro Peláez
 

library assets

Modular assets system for Nette framework

image

carrooi/assets

Modular assets system for Nette framework

  • Tuesday, February 10, 2015
  • by sakren
  • Repository
  • 1 Watchers
  • 0 Stars
  • 222 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 2 % Grown

The README.md

Carrooi/Assets

Build Status Donate, (*1)

Simple modular assets system for Nette framework., (*2)

Installation

$ composer require carrooi/assets
$ composer update

Then just enable nette extension in your config.neon:, (*3)

extensions:
    assets: Carrooi\Assets\DI\AssetsExtension

Configuration

extensions:
    assets: Carrooi\Assets\DI\AssetsExtension

assets:

    front:
        css:
            compiler: css
            paths:
                - %appDir%/../www/css/style.css
                - [mask: '*.css', from: %appDir%/../www/css/components]
                - [mask: '*.css', in: %appDir%/../www/css/core]
            target: %appDir%/../www/public/style.css
            publicPath: /public/style.css

        js:
            compiler: js
            paths:
                - %appDir%/../www/js
            target: %appDir%/../www/public/web.js
            publicPath: /public/web.js

Now we've got one namespace front with two resources css and js. You can create as many namespaces or resources as you want with any names., (*4)

Each resource needs its compiler, paths to compile and target built file with public path., (*5)

  • Compiler: Currently just css or js. It can be also name of custom compiler class
  • Paths: Names of files, directories or configurations for nette/finder
  • Target: Path in file system to result file
  • PublicPath: Path to built file accessible from browser

Usage


namespace App\Presenters; use Nette\Application\UI\Presenter; class BasePresenter extends Presenter { /** * @var \Carrooi\Assets\UI\IAssetsControlFactory * @inject */ public $assetsControlFactory; /** * @return \Carrooi\Assets\UI\AssetsControl */ protected function createComponentAssets() { return $this->assetsControlFactory->create(); } }
{control assets, front, css}

That will combine all our registered css files into one and add it to your template via our component., (*6)

Filters

public function __construct(\Carrooi\Assets\Assets $assets)
{
    $resource = $assets->getResource('front', 'css');
    $resource->getCompiler()->addFileFilter(function($file) {
        return "/* Author: John Doe */\n". $file;
    });
}

This file filter on compiler will prepend author's name before each compiled file., (*7)

Or there are also filters for final built files., (*8)

public function __construct(\Carrooi\Assets\Assets $assets)
{
    $resource = $assets->getResource('front', 'css');
    $resource->addFilter(function($file) {
        return "/* Built with Carrooi/Assets */\n". $file;
    });
}

This filter will add "Built with Carrooi/Assets" text to the beginning of target file., (*9)

Add paths

public function __construct(\Carrooi\Assets\Assets $assets)
{
    $resource = $assets->getResource('front', 'css');
    $resource->addPath(__DIR__. '/../../widget.css'); // just like in neon configuration
}

CompilerExtension

Your compiler extensions can also implement \Carrooi\Assets\DI\IAssetsProvider interface for some additional configuration., (*10)

namespace App\DI;

use Carrooi\Assets\DI\IAssetsProvider;
use Nette\DI\CompilerExtension;

class AppExtension extends CompilerExtension implements IAssetsProvider
{


    /**
     * @return array
     */
    public function getAssetsConfiguration()
    {
        return [
            'front' => [
                'css' => [
                    'paths' => [
                        __DIR__. '/../widget.css',
                    ],
                ],
            ],
        ]
    }

}

Changelog

  • 1.0.0, (*11)

    • First version
  • 1.0.1, (*12)

    • IAssetsProvider::getAssetsFiles() renamed to ::getAssetsConfiguration() [BC Break]
  • 1.0.2, (*13)

    • Optimized dependencies
    • Removed unused exceptions
    • Optimized checking for files' modifications

The Versions

10/02 2015

dev-master

9999999-dev

Modular assets system for Nette framework

  Sources   Download

MIT

The Requires

 

The Development Requires

css javascript assets js nette carrooi

26/01 2015

1.0.2

1.0.2.0

Modular assets system for Nette framework

  Sources   Download

MIT

The Requires

 

The Development Requires

css javascript assets js nette carrooi

24/01 2015

1.0.1

1.0.1.0

Modular assets system for Nette framework

  Sources   Download

MIT

The Requires

 

The Development Requires

css javascript assets js nette carrooi

23/01 2015