mirror of
https://github.com/mrclay/minify.git
synced 2025-01-17 13:18:13 +01:00
4710509c68
Moves all dependency building into App bootstrap.php returns an App instance The app loads config files as necessary Moves logging to Monolog Moves HTTP digest auth to packagist component Rely on sys_get_temp_dir Env hosts $_POST and allows defaults when reading HTML helper uses the App and can handle less files Source factory assumes strings are filenames Fixes JsClosureCompilerTest::test6 (API now handles ES5 by default) Exclude JsClosureCompilerTest due to API limitations config.php can now return a Minify\Config object Variables set in config.php are now moved to a `Minify\Config` object, allowing better static analysis. The `zlib.output_compression` set is moved into `Minify::serve`.
79 lines
2.6 KiB
PHP
79 lines
2.6 KiB
PHP
<?php
|
|
/**
|
|
* Utility functions for generating URIs in HTML files
|
|
*
|
|
* @warning These functions execute min/groupsConfig.php, sometimes multiple times.
|
|
* You must make sure that functions are not redefined, and if your use custom sources,
|
|
* you must require_once __DIR__ . '/lib/Minify/Source.php' so that
|
|
* class is available.
|
|
*
|
|
* @package Minify
|
|
*/
|
|
|
|
require __DIR__ . '/bootstrap.php';
|
|
|
|
/*
|
|
* Get an HTML-escaped Minify URI for a group or set of files. By default, URIs
|
|
* will contain timestamps to allow far-future Expires headers.
|
|
*
|
|
* <code>
|
|
* <link rel="stylesheet" type="text/css" href="<?= Minify_getUri('css'); ?>" />
|
|
* <script src="<?= Minify_getUri('js'); ?>"></script>
|
|
* <script src="<?= Minify_getUri(array(
|
|
* '//scripts/file1.js'
|
|
* ,'//scripts/file2.js'
|
|
* )); ?>"></script>
|
|
* </code>
|
|
*
|
|
* @param mixed $keyOrFiles a group key or array of file paths/URIs
|
|
* @param array $opts options:
|
|
* 'farExpires' : (default true) append a modified timestamp for cache revving
|
|
* 'debug' : (default false) append debug flag
|
|
* 'charset' : (default 'UTF-8') for htmlspecialchars
|
|
* 'minAppUri' : (default '/min') URI of min directory
|
|
* 'rewriteWorks' : (default true) does mod_rewrite work in min app?
|
|
* 'groupsConfigFile' : specify if different
|
|
* @return string
|
|
*/
|
|
function Minify_getUri($keyOrFiles, $opts = array())
|
|
{
|
|
return Minify_HTML_Helper::getUri($keyOrFiles, $opts);
|
|
}
|
|
|
|
|
|
/**
|
|
* Get the last modification time of several source js/css files. If you're
|
|
* caching the output of Minify_getUri(), you might want to know if one of the
|
|
* dependent source files has changed so you can update the HTML.
|
|
*
|
|
* Since this makes a bunch of stat() calls, you might not want to check this
|
|
* on every request.
|
|
*
|
|
* @param array $keysAndFiles group keys and/or file paths/URIs.
|
|
* @return int latest modification time of all given keys/files
|
|
*/
|
|
function Minify_mtime($keysAndFiles, $groupsConfigFile = null)
|
|
{
|
|
$gc = null;
|
|
if (! $groupsConfigFile) {
|
|
$groupsConfigFile = Minify_HTML_Helper::app()->groupsConfigPath;
|
|
}
|
|
$sources = array();
|
|
foreach ($keysAndFiles as $keyOrFile) {
|
|
if (is_object($keyOrFile)
|
|
|| 0 === strpos($keyOrFile, '/')
|
|
|| 1 === strpos($keyOrFile, ':\\')) {
|
|
// a file/source obj
|
|
$sources[] = $keyOrFile;
|
|
} else {
|
|
if (! $gc) {
|
|
$gc = (require $groupsConfigFile);
|
|
}
|
|
foreach ($gc[$keyOrFile] as $source) {
|
|
$sources[] = $source;
|
|
}
|
|
}
|
|
}
|
|
return Minify_HTML_Helper::getLastModified($sources);
|
|
}
|