$config->versionUrls() method

Given array of file asset URLs return them with cache-busting version strings

URLs that aready have query strings or URLs with scheme (i.e. https://) are ignored, except for URLs that already have a core version query string, i.e. ?v=3.0.227 may be converted to a different version string when appropriate.

URLs that do not resolve to a physical file on the file system, relative URLs, or URLs that are outside of ProcessWire’s web root, are only eligible to receive a common/shared version in the URL (like the core version).

To set a different default value for the $useVersion argument, you can populate the $config->useVersionUrls setting in your /site/config.php with the default value you want to substitute.

Available since version 3.0.227.

Example

foreach($config->versionUrls($config->styles) as $url) {
  echo "<link rel='stylesheet' href='$url' />";
}
// there is also this shortcut for the above
foreach($config->styles->urls() as $url) {
  echo "<link rel='stylesheet' href='$url' />";
}

Usage

// basic usage
$array = $config->versionUrls($urls);

// usage with all arguments
$array = $config->versionUrls($urls, $useVersion = null);

Arguments

NameType(s)Description
urlsarray, FilenameArray, WireArray, \ArrayObject

Array of URLs to file assets such as JS/CSS files.

useVersion (optional)bool, null, string

What to use for the version string (null is default):

  • true (bool): Get version from filemtime.
  • false (bool): Never get file version, just use $config->version.
  • null (null): Auto-detect: use file version in debug mode or dev branch only, $config->version otherwise.
  • foobar (string): Specify any string to be the version to use on all URLs needing it. - ?foo=bar (string): Optionally specify your own query string variable=value.
  • The default value (null) can be overridden by the $config->useVersionUrls setting.

Return value

array

Array of URLs updated with version strings where needed


$config methods and properties

API reference based on ProcessWire core version 3.0.236

Latest news

  • ProcessWire Weekly #554
    In the 554th issue of ProcessWire Weekly we'll check out the latest core updates, introduce a couple of new third party modules, and more. Read on!
    Weekly.pw / 21 December 2024
  • Custom Fields Module
    This week we look at a new ProFields module named Custom Fields. This module provides a way to rapidly build out ProcessWire fields that contain any number of subfields/properties within them.
    Blog / 30 August 2024
  • Subscribe to weekly ProcessWire news

“The end client and designer love the ease at which they can update the website. Training beyond how to log in wasn’t even necessary since ProcessWire’s default interface is straightforward.” —Jonathan Lahijani