2017 © Pedro PelĂĄez
 

symfony-bundle assets-extra-bundle

Symfony2 Bundle to extend built-in asset-management

image

checkdomain/assets-extra-bundle

Symfony2 Bundle to extend built-in asset-management

  • Monday, November 25, 2013
  • by KoernerWS
  • Repository
  • 7 Watchers
  • 5 Stars
  • 1,146 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

checkdomain GmbH AssetsExtraBundle

Erweitert die Konfiguration der internen Symfony 2 Assets-Verwaltung, um Bundlenamen im Dateipfad zu verschlĂŒsseln oder auch den Assets-Ordner von "bundles" auf einen anderen umzustellen. Beinhaltet Erweiterungen der Twig asset()-Funktion, des Assetic LessPHP-Compilers und CssRewrite-Filters, welche das Verweisen mit Logical File Names erlauben sowie einen Assetic CssRewrite-Filter-Bug Fix., (*1)

Installation

Befolge folgende Schritte, um das Bundle in deiner Symfony-Umgebung zu installieren., (*2)

1. Schritt

FĂŒge die folgende Zeile zu deiner composer.json hinzu:, (*3)

"require" :  {
    // ...
    "checkdomain/assets-extra-bundle": "dev-master",
}

2. Schritt

FĂŒhre ein composer update aus, um die Pakete neu zu laden., (*4)

3. Schritt

Registriere das Bundle mit folgender Codezeile:, (*5)

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
            // ...
            new Checkdomain\AssetsExtraBundle\CheckdomainAssetsExtraBundle(),
    );
    // ...
}

4. Schritt

Wenn du LessPHP nutzen möchtest, aktiviere die Erweiterung wie gewohnt in deiner Konfiguration. Eine Anleitung dazu findest du zum Beispiel auf howto24.net., (*6)

Wir empfehlen das aktivieren des CssRewrite-Filters von Assetic auf alle Dateiendungen, wie:, (*7)

  • *.css
  • *.less
  • *.sass
  • und *.scss

Bearbeite deine Konfiguration dazu einfach wie folgt:, (*8)

assetic:
    filters:
        cssrewrite:
            apply_to: '\.(css|less|sass|scss)$'

Konfiguration

Folgende Konfigurationen stehen dir zur VerfĂŒgung, (*9)

checkdomain_assets_extra:
    write_to: web
    encrypt_bundle: false
    assets_path: bundles
  • write_to
    ist bekannt aus dem AsseticBundle. Du kannst angeben, in welchen Ordner die Assets beim AusfĂŒhren von app/console assetic:install standardmĂ€ĂŸig geschrieben werden sollen., (*10)

  • encrypt_bundle
    verschleiert, wenn aktiviert, den Bundle-Namen im Asset-Pfad. Aus bundles/acmedemo/test.jpg wird zum Beispiel bundles/e0b6011f/test.jpg, (*11)

  • assets_path
    gibt das Verzeichnis fĂŒr Assets an. Als Standard ist bei Symfony der Wert bundles gesetzt, aber vielleicht findet ja der ein oder andere zum Beispiel assets schöner., (*12)

Anwendung

Im folgenden werden die verschiedenen Anwendungsbereiche kurz erklÀrt. In den Beispielen nutzen wir folgende Konfiguration., (*13)

checkdomain_assets_extra:
    encrypt_bundle: true
    assets_path: assets

Assets installieren

Mit dem Konsolen-Kommando assets:install lassen sich alle Assets entsprechend der Konfiguration installieren. Weitere Informationen liefert der Befehl assets:install --help., (*14)

Twig asset()-Funktion

Die Twig-Funktion funktioniert wie gewohnt. ZusÀtzlich ist der Gebrauch von Logical File Names möglich., (*15)

test.html.twig, (*16)

{{ asset('bundles/acmedemo/test.jpg') }}
{{ asset('@AcmeDemoBundle/test.jpg') }}

Ergebnis, (*17)

/assets/e0b6011f/test.jpg
/assets/e0b6011f/test.jpg

Css-Rewrite-Filter

Ohne dieses Bundle funktioniert dieser Filter nur, wenn keine Logical File Names in der Twig-Extension fĂŒr Assetic genutzt werden. Dieses Problem ist gelöst und zudem sind auch Logical File Names in den CSS-Dateien selbst möglich., (*18)

/src/Acme/DemoBundle/Resources/public/css/test.css, (*19)

// Zeigt auf: /src/Checkdomain/TwitterBootstrapBundle/Resources/public/css/bootstrap.css
@import url(@CheckdomainTwitterBootstrapBundle/css/bootstrap.css);

.logo {
    // Zeigt auf: /src/Acme/DemoBundle/Resources/public/img/logo.jpg
    background-image: url(../img/logo.jpg);
}

Ergebnis, (*20)

@import url(/assets/19e3eda3/css/bootstrap.css);

.logo {
    background-image: url(/assets/19e3eda3/img/logo.jpg);
}

LessPHP-Compiler

Interessant sind hier Imports aus verschiedenen Bundles, welche ohne dieses Bundle nur durch mĂŒhselige Angabe des kompletten Verzeichnispfades möglich wĂ€ren. Wir nutzen einfach Logical File Names. In diesem Beispiel nutzen wir das TwitterBootstrapBundle., (*21)

/src/Acme/DemoBundle/Resources/public/css/test.css, (*22)

// Zeigt auf: /src/Checkdomain/TwitterBootstrapBundle/Resources/private/less/bootstrap.less
@import url(@CheckdomainTwitterBootstrapBundle/Resources/private/less/bootstrap.less);

Achtung: Da die Less-Dateien nicht zwangslĂ€ufig im public-Ordner liegen mĂŒssen, ist hier die Angabe des kompletten Pfades nötig, wĂ€hrend in den anderen Beispielen der Pfad Resources/public/ komplett weggelassen werden muss und automatisch von diesem Ordner ausgegangen wird, da nur dieser bei einem assets:install kopiert wird., (*23)

The Versions

25/11 2013

dev-master

9999999-dev https://www.checkdomain.de/

Symfony2 Bundle to extend built-in asset-management

  Sources   Download

MIT

The Requires

 

bundle asset assetic

25/11 2013

0.2.5

0.2.5.0 https://www.checkdomain.de/

Symfony2 Bundle to extend built-in asset-management

  Sources   Download

MIT

The Requires

 

bundle asset assetic

12/04 2013

0.2.4

0.2.4.0 https://www.checkdomain.de/

Symfony2 Bundle to extend built-in asset-management

  Sources   Download

MIT

The Requires

 

bundle asset assetic

18/03 2013

0.2.3

0.2.3.0 https://www.checkdomain.de/

Symfony2 Bundle to extend built-in asset-management

  Sources   Download

MIT

The Requires

 

bundle asset assetic

15/03 2013

0.2.2

0.2.2.0 https://www.checkdomain.de/

Symfony2 Bundle to extend built-in asset-management

  Sources   Download

MIT

The Requires

 

bundle asset assetic

12/03 2013

0.2.1

0.2.1.0 https://www.checkdomain.de/

Symfony2 Bundle to extend built-in asset-management

  Sources   Download

MIT

The Requires

 

bundle asset assetic

11/03 2013

0.2.0

0.2.0.0 https://www.checkdomain.de/

Symfony2 Bundle to extend built-in asset-management

  Sources   Download

MIT

The Requires

 

bundle asset assetic

07/03 2013

0.1.0

0.1.0.0 https://www.checkdomain.de/

Symfony2 Bundle to extend built-in asset-management

  Sources   Download

MIT

The Requires

 

bundle asset assetic