Symfony2 minify without java or node

2019-04-07 14:43发布

问题:

I do not have access to java or node on my shared host. Is there a way to minify server side, so I can continue to use assetic, without these engines? Uglify uses node and yui-compressor (deprecated anyway) uses java.

Thanks!

回答1:

There seem to be 2 filters using only PHP code:

  • CssMinFilter
  • JSMinPlusFilter

You will need to install the minify php library through composer, and then use the cssmin and jsminplus assetic filters.



回答2:

Just for clarify the steps:

  1. composer require mrclay/minify
  2. In symfony app/config/config.yml add to assetic config:

    # some stuff assetic: filters: # possible another filters minifycsscompressor: ~ jsminplus: ~

    1. In twig:

    {% stylesheets <your assets> filter='minifycsscompressor' %} <link rel="stylesheet" href="{{ asset_url }}"> {% endstylesheets %}

    {% javascripts <your assets> filter='jsminplus' %} <script src="{{ asset_url }}"></script> {% endjavascripts %}



回答3:

I know this is an old topic, but I would like to add a small correction to @AdrianBrault's answer for anyone who stumbles onto this.

When installing the said minify library, you need to use the minifycsscompressor filter, which uses the MinifyCssCompressorFilter class. The cssmin uses a different minification library.