From there, you can easily change your theme, update your jquery version
, use another datepicker for all your templates by updating the appropriate
package, change framework,… Without modifying each of your templates !

Specific examples

Loading on javascripts or stylesheets

In some cases you should load a package but only its javascripts or
stylesheets.
That will also only load the specified asset type for imported packages.

Mixing assets manager with regular calls

Calling assets manager from an action or a class

By default it should be called in a template and therefore use the helper.

However, in some case you might need to call a package from an action or a class.

$manager = new sfAssetsManager();$manager->load('mypackage');

See Source code or tests for futher details or methods.

This will use javascript file in the called ordered and will result with
an inclusion of myfile.js after assets from package1 and before those
from package2.

Altering response after its full load

In some case (such a loading a package from a DB rendered content) the sfWebResponse
content is not properly up-to-date with its actual stylesheets and javascripts (symfony bug ?).

In this example case it is useful to alter the js and css tag from the response content.
Therefore, you may activate the alter_response configuration flag and use the appropriate tags.

config

app:sf_assets_manager_plugin:alter_response:true

layout

replace

<?phpinclude_stylesheets()?><?phpinclude_javascripts()?>

with

<?phpechostylesheet_assets()?><?phpechojavascript_assets()?>

Notice that using these helpers would still work the alter_response configuration set to false
as it would render the regular helpers.

Configuration

List of packages :

Packages are declared in config/assets_manager.yml.
This file can be in any level of config dir (module, application,
project, plugin) and be overriden by each other.

Packages are based on their names and therfore must be unique.

They must all be under the "packages:" root node.

Configuring a package :

import: string or array. Existing packages to include. Note that
assets used in imported packages will be included before the current
package assets.

js: string or array. javascripts to include.

css: string or array. stylesheets to include.

Note that js and css options and treated the same way that the
Response object usually treats them.
That means if you set a relative path, files will be searched from
/web/js and /web/css.
The assets will be loaded in the same order than the array.

More

See the tests files for further details.

Unlimited private and public hosted repositories. Free for small teams!