| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- <?php
 
- /**
 
-  * 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) 
 
-     {
 
-         $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 = $_SERVER['DOCUMENT_ROOT'] . substr($source, 1);
 
-                 }
 
-                 if (is_file($source)) {
 
-                     $max = max($max, filemtime($source));
 
-                 }
 
-             }
 
-         }
 
-         $this->lastModified = $max;
 
-     }
 
- }
 
 
  |