class Requirements implements Flushable (View source)

Requirements tracker for JavaScript and CSS.

Properties

Methods

public static 
flush()

Triggered early in the request when a flush is requested

public static 
set_combined_files_enabled(bool $enable)

Enable combining of css/javascript files.

public static 
bool
get_combined_files_enabled()

Checks whether combining of css/javascript files is enabled.

public static 
set_combined_files_folder(string $folder)

Set the relative folder e.g. 'assets' for where to store combined files

public static 
set_suffix_requirements($var)

Set whether to add caching query params to the requests for file-based requirements.

public static 
bool
get_suffix_requirements()

Check whether we want to suffix requirements

public static 
backend()

No description

public static 
set_backend(Requirements_Backend $backend)

Setter method for changing the Requirements backend

public static 
javascript(string $file)

Register the given JavaScript file as required.

public static 
customScript(string $script, string|int $uniquenessID = null)

Register the given JavaScript code into the list of requirements

public static 
array
get_custom_scripts()

Return all registered custom scripts

public static 
customCSS(string $script, string|int $uniquenessID = null)

Register the given CSS styles into the list of requirements

public static 
insertHeadTags(string $html, string|int $uniquenessID = null)

Add the following custom HTML code to the section of the page

public static 
javascriptTemplate(string $file, string[]|int[] $vars, string|int $uniquenessID = null)

Include the content of the given JavaScript file in the list of requirements. Dollar-sign variables will be interpolated with values from $vars similar to a .ss template.

public static 
css(string $file, string $media = null)

Register the given stylesheet into the list of requirements.

public static 
themedCSS(string $name, string $module = null, string $media = null)

Registers the given themeable stylesheet as required.

public static 
themedJavascript(string $name, string $module = null, string $type = null)

Registers the given themeable javascript as required.

public static 
clear(string|int $fileOrID = null)

Clear either a single or all requirements

public static 
restore()

Restore requirements cleared by call to Requirements::clear

public static 
block(string|int $fileOrID)

Block inclusion of a specific file

public static 
unblock(string|int $fileOrID)

Remove an item from the block list

public static 
unblock_all()

Removes all items from the block list

public static 
string
includeInHTML(string $templateFile, string $content)

Update the given HTML content with the appropriate include tags for the registered requirements. Needs to receive a valid HTML/XHTML template in the $content parameter, including a head and body tag.

public static 
include_in_response(SS_HTTPResponse $response)

Attach requirements inclusion to X-Include-JS and X-Include-CSS headers on the given HTTP Response

public static 
array
add_i18n_javascript(string $langDir, bool $return = false, bool $langOnly = false)

Add i18n files from the given javascript directory. SilverStripe expects that the given directory will contain a number of JavaScript files named by language: en_US.js, de_DE.js, etc.

public static 
bool|void
combine_files(string $combinedFileName, array $files, string $media = null)

Concatenate several css or javascript files into a single dynamically generated file. This increases performance by fewer HTTP requests.

public static 
array
get_combine_files()

Return all combined files; keys are the combined file names, values are lists of files being combined.

public static 
delete_combined_files(string $combinedFileName = null)

Delete all dynamically generated combined files from the filesystem

public static 
delete_all_combined_files()

Deletes all generated combined files in the configured combined files directory, but doesn't delete the directory itself

public static 
clear_combined_files()

Re-sets the combined files definition. See Requirements_Backend::clear_combined_files()

public static 
process_combined_files()

Do the heavy lifting involved in combining (and, in the case of JavaScript minifying) the combined files.

public static 
set_write_js_to_body($var)

Set whether you want to write the JS to the body of the page rather than at the end of the head tag.

public static 
set_force_js_to_bottom(bool $var)

Set whether to force the JavaScript to end of the body. Useful if you use inline script tags that don't rely on scripts included via {@link Requirements::javascript()).

public static 
debug()

Output debugging information

Details

static flush()

Triggered early in the request when a flush is requested

static set_combined_files_enabled(bool $enable)

Enable combining of css/javascript files.

Parameters

bool $enable

static bool get_combined_files_enabled()

Checks whether combining of css/javascript files is enabled.

Return Value

bool

static set_combined_files_folder(string $folder)

Set the relative folder e.g. 'assets' for where to store combined files

Parameters

string $folder

Path to folder

static set_suffix_requirements($var)

Set whether to add caching query params to the requests for file-based requirements.

Eg: themes/myTheme/js/main.js?m=123456789. The parameter is a timestamp generated by filemtime. This has the benefit of allowing the browser to cache the URL infinitely, while automatically busting this cache every time the file is changed.

Parameters

$var

static bool get_suffix_requirements()

Check whether we want to suffix requirements

Return Value

bool

static backend()

No description

static set_backend(Requirements_Backend $backend)

Setter method for changing the Requirements backend

Parameters

Requirements_Backend $backend

static javascript(string $file)

Register the given JavaScript file as required.

Parameters

string $file

Relative to docroot

static customScript(string $script, string|int $uniquenessID = null)

Register the given JavaScript code into the list of requirements

Parameters

string $script

The script content as a string (without enclosing