AlkantarClanX12
Current Path : /home/thanudqk/www/wp-content/plugins/w3-total-cache/lib/Minify/Minify/ |
Current File : /home/thanudqk/www/wp-content/plugins/w3-total-cache/lib/Minify/Minify/Build.php |
<?php /** * File: Build.php * * NOTE: Fixes have been included in this file; look for "W3TC FIX". */ namespace W3TCL\Minify; /** * Class Minify_Build * @package Minify */ /** * Maintain a single last modification time for a group of Minify sources to * allow use of far off Expires headers in Minify. * * <code> * // in config file * $groupSources = array( * 'js' => array('file1.js', 'file2.js') * ,'css' => array('file1.css', 'file2.css', 'file3.css') * ) * * // during HTML generation * $jsBuild = new Minify_Build($groupSources['js']); * $cssBuild = new Minify_Build($groupSources['css']); * * $script = "<script type='text/javascript' src='" * . $jsBuild->uri('/min.php/js') . "'></script>"; * $link = "<link rel='stylesheet' type='text/css' href='" * . $cssBuild->uri('/min.php/css') . "'>"; * * // in min.php * Minify::serve('Groups', array( * 'groups' => $groupSources * ,'setExpires' => (time() + 86400 * 365) * )); * </code> * * @package Minify * @author Stephen Clay <steve@mrclay.org> */ class Minify_Build { /** * Last modification time of all files in the build * * @var int */ public $lastModified = 0; /** * String to use as ampersand in uri(). Set this to '&' if * you are not HTML-escaping URIs. * * @var string */ public static $ampersand = '&'; /** * Get a time-stamped URI * * <code> * echo $b->uri('/site.js'); * // outputs "/site.js?1678242" * * echo $b->uri('/scriptaculous.js?load=effects'); * // outputs "/scriptaculous.js?load=effects&1678242" * </code> * * @param string $uri * @param boolean $forceAmpersand (default = false) Force the use of ampersand to * append the timestamp to the URI. * @return string */ public function uri($uri, $forceAmpersand = false) { $sep = ($forceAmpersand || strpos($uri, '?') !== false) ? self::$ampersand : '?'; return "{$uri}{$sep}{$this->lastModified}"; } /** * Create a build object * * @param array $sources array of Minify_Source objects and/or file paths * * @return null */ public function __construct($sources) { // W3TC FIX: Override $_SERVER['DOCUMENT_ROOT'] if enabled in settings. $docroot = \W3TC\Util_Environment::document_root(); $max = 0; foreach ((array)$sources as $source) { if ($source instanceof Minify_Source) { $max = max($max, $source->lastModified); } elseif (is_string($source)) { if (0 === strpos($source, '//')) { $source = $docroot . substr($source, 1); } if (is_file($source)) { $max = max($max, filemtime($source)); } } } $this->lastModified = $max; } }