WebAssetsCompiler
    
            
            in package
            
        
    
    
    
        
            It reads webassets configuration and transform this configuration into a list that is readable very fast during the response construction.
webassets_* section ar webassets collections. The webassets_common section
is collection that is merged with any other collections.
In each section there can be several group of assets. A group is often corresponding to a list of CSS and JS links used by a specific component.
To declare JS files of a group, you have to use the name of the group, following by .js.
To declare CSS files, use the suffix .css.
To declare icon files, use the suffix .icon.
For example, to declare CSS and JS links for the group mygroup:
mygroup.js= "js/scripts.js" mygroup.css= "design/super.css" mygroup.icon= "favicon.png"
List of assets is supported, using a comma or the array notation of the ini format:
mygroup1.js= "js/foo.js, js/bar.js"
mygroup2.js[]= "js/bla.js" mygroup2.js[]= "js/baz.js"
The path for JS and CSS links, can be:
- an absolute path, starting with /, or a full URL (starting with http:// )
- a path relative to the base path (so it doesn't start with /)
- a path starting with $theme/, where $theme will be replaced by a path like /themes/<current_theme>/ 
- a path starting with $jelix/, where $jelix will be replaced by the path of the jelix-www directory.
- a selector of a module action: ~ : . This action should return a JS or CSS content. 
- a module name, followed by : and then by a path. This path should correspond to a file inside the www/ directory of the indicated module.
Path like 1) to 4) can contain also some variables, $locale or $lang, that will be replaced respectively by the current locale code (xx_YY) and the current language code (xx).
Example:
example.js[]= "/absolute/path.js" example.js[]= "http://my.site/absolute/path.js" example.js[]= related/to/basepath example.js[]= "module:path/to/file.js, module~ctrl:meth" example.js[]= "$theme/path/to/file.js, path/$lang/machin.js, /$locale/truc.js"
some html attributes can be indicated, which will be added to the script or the link element, like defer or media attributes:
example.js[]= "myscript.js|defer" example.js[]= "https://popular.com/script.js.js|defer|integrity=sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K|crossorigin=anonymous" example.js[]= "mymodule.mjs|type=module" example.css[]= "mystyle.css|media=screen and (max-width: 600px)" example.css[]= "fancy.css|rel=alternate stylesheet|title=Fancy" example.icon[]= "favicon-32x32.png|sizes=32x32" example.icon[]= "favicon-64x64.png|sizes=64x64"
A group can be included into an other group. For example, the assets group "mygroup" must always used with the group "jquery". A dependency should then be indicated.
Two kind of dependencies: require and include.
example1.js = ex1.js example2.js = ex2.js example2.css = ex2.css example3.js = ex3.js example3.css = ex3.css
example.require = example1, example2 example.include = example3 example.js = foo.js example.css = foo.css
.require allows to include given groups before the declaration of JS and CSS files of the group into the HTML.
Whereas .include allows to include given groups after the assets of the group.
Tags
Table of Contents
- $assets : mixed
- $collections : mixed
- $config : mixed
- $groupsOrder : mixed
- $includedAssetsGroups : mixed
- $revisionQueryUrlParam : string
- __construct() : mixed
- WebAssetsCompiler constructor.
- compile() : StdClass
- appendRevisionToUrl() : mixed
- getDependenciesOrder() : mixed
- getGroupDependencies() : mixed
- getGroupProperties() : mixed
- includeAssetsGroup() : mixed
- parseAsset() : mixed
- parseAssetsSet() : mixed
Properties
$assets
    protected
        mixed
    $assets
     = array()
    
        
    
    Tags
$collections
    protected
        mixed
    $collections
     = array()
    
        
    
    Tags
$config
    protected
        mixed
    $config
    
    
        
    
    Tags
$groupsOrder
    protected
        mixed
    $groupsOrder
     = array()
    
        
    
    Tags
$includedAssetsGroups
    protected
        mixed
    $includedAssetsGroups
     = array()
    
        
    
    Tags
$revisionQueryUrlParam
    protected
        string
    $revisionQueryUrlParam
    
    
        the assetsRevQueryUrl configuration value, e.g. something like '_r=1234'. It may be empty.
Tags
Methods
__construct()
WebAssetsCompiler constructor.
    public
                __construct() : mixed
    
    
    
    Tags
Return values
mixed —compile()
    public
                compile(object $configuration[, bool $storeIntoConfiguration = true ]) : StdClass
    
        Parameters
- $configuration : object
- $storeIntoConfiguration : bool = true
Tags
Return values
StdClass —data to use with WebAssetsSelector
appendRevisionToUrl()
    protected
                appendRevisionToUrl(mixed $url) : mixed
    
        Parameters
- $url : mixed
Tags
Return values
mixed —getDependenciesOrder()
    protected
                getDependenciesOrder(mixed $collection) : mixed
    
        Parameters
- $collection : mixed
Tags
Return values
mixed —getGroupDependencies()
    protected
                getGroupDependencies(mixed $group) : mixed
    
        Parameters
- $group : mixed
Tags
Return values
mixed —getGroupProperties()
    protected
                getGroupProperties(mixed $collectionName, mixed $groupName) : mixed
    
        Parameters
- $collectionName : mixed
- $groupName : mixed
Tags
Return values
mixed —includeAssetsGroup()
    protected
                includeAssetsGroup(mixed $group) : mixed
    
        Parameters
- $group : mixed
Tags
Return values
mixed —parseAsset()
    protected
                parseAsset(mixed $asset, mixed $type) : mixed
    
        Parameters
- $asset : mixed
- $type : mixed
Tags
Return values
mixed —parseAssetsSet()
    protected
                parseAssetsSet(mixed $sectionName, mixed &$commonCollection) : mixed
    
        Parameters
- $sectionName : mixed
- $commonCollection : mixed
