Bonjour à tous,

Je souhaite intégrer le paquet Assetic dans un projet aux cotés de Twig mais je n'arrive pas à comprendre la marche à suivre pour l'implémenter.

J'ai beau suivre la doc, je ne comprends pas ce qu'il faut faire. j'ai testé ça mais :

$am = new AssetManager();
$am->set('base_css', new GlobAsset(__DIR__ . '/public/css/*'));
$am->set('lib_css', new GlobAsset(__DIR__ . '/public/css/lib/*/*'));
$am->set('base_js', new GlobAsset(__DIR__ . '/public/js/*'));
$am->set('lib_js', new GlobAsset(__DIR__ . '/public/js/lib/*/*'));

$fm = new FilterManager();
$fm->set('yui_css', new Yui\CssCompressorFilter(__DIR__ . '/compressors/yuicompressor.jar'));
$fm->set('yui_js', new Yui\CssCompressorFilter(__DIR__ . '/compressors/yuicompressor.jar'));

$factory = new AssetFactory($config['folders']['public']);
$factory->setAssetManager($am);
$factory->setFilterManager($fm);

$view->addExtension(new AsseticExtension($factory));

$am = new LazyAssetManager($factory);
$am->setLoader('twig', new TwigFormulaLoader($view->getEnvironment()));

$writer = new AssetWriter(__DIR__ . '/public/min');
$writer->writeManagerAssets($am);
{% stylesheets '[@lib_css,@base_css]' filter='yui_css' output='min/min.css' %}
    <link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}

Aucun fichier ne s'écrit, rien ne se passe.

Par contre, dans ma vue, j'ai bien <link href="min/min.css" type="text/css" rel="stylesheet" />

Je solicite votre aide car là je ne comprends pas du tout ce qu'il se passe.

Merci par avance

3 réponses


Bonjour,

Il nous faudrait bien plus de détail, sur quel eco-système as tu essayer d'ajouter Assetic ? rien ne se passe, mais encore ? Quand tu intéroges ton cerveur en essayant de récuperer min/min.css que ce passe-t-il ?

De plus Assetic est un projet mort qui est dépassé. SensioLabs eux-même recommande d'utiliser des gestionnaires de bien plus efficasse tel que :

  • webpack
  • gulpJS
  • GruntJS

Sauf raison particulière, je te recommande chaudement d'abandonner Assetic pour une des téchnologies cités ci-dessus.

Salut,

Je suis sous Slim 3.
Pour le fichier min.css, il n'est tout simplement pas écrit. Je n'ai même pas de message d'erreur ou autre.

Les techno que tu m'as données ne peuvent pas charger les fichiers CSS et JS dinamiquement dans Twig et ne permettent pas non plus une compression des images comme peut le faire Assetic.
Si tu as un système qui fonctionne comme Assetic, via un système de tag {% stylesheets %}{% endstylesheets %} je suis preneur.

Je pense que tu n'as pas compris le système proposé par les gestionnaires de taches :

  • Le but est de s'abstraire de ton PHP pour gérer tes assets. C'est géré separement, dans ton twig tu auras qu'à mettre un simple link[href="/min/min.css"] et faire en sorte que tes taches te donne un output dans web/min/min.css.

Dans l'espoir que ça ait répondu à tes questions.