This bundle makes it easy automatically change file names of files controlled by assetic like Javascript Stylesheet files. The CacheBustingWorker adds a hash to the filename. This hash is generated by using the content of the file. Because this CacheBustingWorker does not use file modification time to generate the hash, it also works well with systems that don not care about file modification time (like git).
Enable this bundle by registering the bundle
# AppKernel.php
public function registerBundles()
{
$bundles = array(
...
new jvdh\AsseticCacheBustingBundle\JvdhAsseticCacheBustingBundle()
);
}
and by enabling it a config file.
# app/config/config.yml
jvdh_assetic_cache_busting:
enabled: true
Hash separator separates the file from the hash. A dash / - is the default separator. When minifying a javascript.js file. The CacheBustingWorker will change the name to javascript-HASH.js
# app/config/config.yml
jvdh_assetic_cache_busting:
enabled: true
separator: -
Hash length is 8 characters by default. When increasing the hash length, always check if the hash algorithm creates hashes that long. For instance md5 creates hashes of only 32 characters.
# app/config/config.yml
jvdh_assetic_cache_busting:
enabled: true
hash_length: 32
Hash algorithm is sha1 by default. Any hash algorithm supported by the php function hash
is fine to use. A different
algorithm might improve the speed of generating changing the file name.
# app/config/config.yml
jvdh_assetic_cache_busting:
enabled: true
hash_algorithm: md5
When the file names only need to contain the hash in production. It is possible to register the bundle only in production
mode. It is also possible to enable the cache busting in for instance the app/config/config_prod.yml
file that is only
loaded in production mode.