Minify框架分析,主要功能类简介
主要功能类简介
config.php 默认缩小应用程序的配置
index.php:为实施默认缩小的前端控制器请勿编辑!通过config.php和groupsConfig.php配置实用程序
Minify:缩小 - 联合收割机,minifies,和缓存的JavaScript和CSS文件需求
abstract class Minify_Controller_Base 缩小控制器的基类
Minify_Source:内容源缩小的缩小。这允许每个源微小的选项和文件的混合从其他来源的内容。
Minify_Cache_File 缓存文件处理
主要功能类简介
config.php 默认缩小应用程序的配置
在“调试”模式,缩小可以结合起来,没有微小的文件和添加注释,以表明原始文件的行#。
为了让调试,将此选项设置为true,并添加“&debug= 1”,一个URI。例如/分钟/ F = script1.js,script2.js及调试= 1
设置为true,将消息记录到FirePHP(Firefox的Firebug的插件)。设置虚假的,没有错误日志记录(缩小可能会稍快)。@链接http://www.firephp.org/
如果你想使用自定义的错误记录器,记录仪设置为实例。你的对象应该有一个方法的日志(字符串$消息)。
允许使用缩小的URI生成器应用程序。如果您不再需要此设置为false。
/ / $ min_cachePath =“C:\ \ WINDOWS \ \ TEMP”;
/ / $ min_cachePath ='/ tmp目录“;
/ / $ min_cachePath = preg_replace('/ ^ \ \ D +;/',“,session_save_path());
为了获得最佳性能,在这里指定temp目录。否则缩小将加载额外的代码来猜测。下面的一些例子:
/ / $ min_documentRoot = SUBSTR(__FILE__,0,strlen的(__FILE__) - 15);
/ / $ min_documentRoot = $ _SERVER ['SUBDOMAIN_DOCUMENT_ROOT'];
留下一个空字符串使用PHP的$_SERVER ['DOCUMENT_ROOT“]。
在某些服务器上,这个值可能配置错误或丢失。如果是这样,设置此完整的文档的根路径没有结尾的斜线。
例如: /首页/帐户名/的public_html“或”C\\ XAMPP\\htdocs中“
如果/分钟/直接在您的文档根目录,只是取消注释第二行。第三行可能会在一些Apache服务器工作。
缓存文件锁定。设置为false,如果文件系统是NFS。至少在一NFS系统的羊群- ING尝试PHP停顿30秒!
$min_serveOptions [“bubbleCssImports'] = FALSE;
$min_serveOptions['MaxAge'] = 1800;
浏览器缓存的最大年龄在几秒钟内。在此期限之后,浏览器将发送另外一个条件GET。使用低流量在一段较长的时间内但你可能要缩短作出改变之前,如果它的关键立即看到这些变化。
注意:尽管此设置,如果包括在年底的数字 querystring中,的MaxAge将被设定为一年。例如/分钟/ F = hello.css&123456
/ / $ min_serveOptions ['minApp“] ['allowDirs'] =阵列('/ / JS','/ / CSS”);
如果你想限制的“F”选项内/以下文件以下DOCUMENT_ROOT的特定目录,此设置。您仍然需要包括在目录中F或B GET参数。=为DOCUMENT_ROOT的快捷方式
$min_serveOptions ['minApp'] ['groupsOnly'] = FALSE;
设置为true,禁用的“F”GET参数用于指定文件。只有“G”参数将予以考虑。
$min_serveOptions [“minApp'] ['MAXFILES'] = 10;
如果您缩小符号链接的目录中存储的CSS文件,URI重写算法可能会失败。为了防止这种情况,提供了一个链接路径的数组目标路径,链接路径的文档根目录内。
由于路径需要为规范化的工作,使用“/ /”来代替在链接路径的文档根目录(数组的键)。例如:的<code>
阵列(“/ /符号链接'=>'/实际/目标/路径”)/ / UNIX
阵列(“/ /静态'=>”D:\ \ staticStorage“)/ /视窗 </ code>的
如果你从windows系统上传文件至非windows系统服务器中,windows可能对文件提示错误的修改时间,
由于源文件频繁地上传,可能导致减少保持服务的缓存文件时效。(例如,可能超过1小时)
修改文件后迅速地上传,利用会话命令更新服务器上的修改时间,如修改时间跳到很多段时间之前,将此变量设置为此数字。如果该文件的修改时间向后移动,这不应该是需要的。
在windows系统SFTP客户端winscp,有一个选项不用改变下面变量便可解决这个问题。
$min_libPath = dirname(__FILE__) . '/lib';
ini_set(“zlib.output_compression','0');
尝试禁用output_compression(可能没有效果)
index.php:为实施默认缩小的前端控制器请勿编辑!通过config.php和groupsConfig.php配置实用程序
define('MINIFY_MIN_DIR', dirname(__FILE__));
require MINIFY_MIN_DIR . '/config.php';
set_include_path($min_libPath . PATH_SEPARATOR . get_include_path());
Minify::$uploaderHoursBehind = $min_uploaderHoursBehind;
isset($min_cachePath) ? $min_cachePath : ''
$_SERVER['DOCUMENT_ROOT'] = $min_documentRoot;
} elseif (0 === stripos(PHP_OS, 'win')) {
Minify::setDocRoot(); // IIS可能需要帮助
$min_serveOptions['minifierOptions']['text/css']['symlinks'] = $min_symlinks;
if ($min_allowDebugFlag && isset($_GET['debug'])) {
$min_serveOptions['debug'] = true;
require_once 'Minify/Logger.php';
if (true === $min_errorLogger) {
Minify_Logger::setLogger(FirePHP::getInstance(true));
Minify_Logger::setLogger($min_errorLogger);
if (preg_match('/&\\d/', $_SERVER['QUERY_STRING'])) {
$min_serveOptions['maxAge'] = 31536000;
$min_serveOptions['minApp']['groups'] = (require MINIFY_MIN_DIR . '/groupsConfig.php');
if (isset($_GET['f']) || isset($_GET['g'])) {
Minify::serve('MinApp', $min_serveOptions);
} elseif ($min_enableBuilder) {
Minify:缩小 - 联合收割机,minifies,和缓存的JavaScript和CSS文件需求
const TYPE_HTML = 'text/html';
const TYPE_JS = 'application/x-javascript'; 有一些较理想的JS内容类型的辩论,但是这是Apache的默认和雅虎使用..
public static $uploaderHoursBehind = 0;
public static $importWarning = "\n";
private static $_cache = null;
@var mixed Minify_Cache_* 对象或null(即没有服务器使用高速缓存)
protected static $_controller = null;
@var Minify_Controller 当前请求的主动控制器
protected static $_options = null;
public static function setCache($cache = '', $fileLocking = true);
指定缓存对象(相同的接口作为Minify_Cache_File)或路径使用Minify_Cache_File。如果不叫,缩小不会使用缓存,每200响应,将需要重组的文件,缩小和编码输出。
@param mixed $cache 缓存对象相同的接口Minify_Cache_File ORA目录路径,或禁用缓存的空。 (默认= '')
@param bool $fileLocking (默认值= TRUE),这仅适用于,如果第一个参数是一个字符串。
public static function serve($controller, $options = array());
'isPublic' : 发送缓存控制,而不是“私”的“公共”头,允许共享缓存,缓存的输出。 (默认为true)
'quiet' : 设置为true,已成为()返回一个数组而不是发送任何头/输出(默认为false)
'encodeOutput' : 设置为false禁用内容的编码,而不是发送Vary头(默认为true)
'encodeMethod' : 通常,你应该让这取决于HTTP_Encoder(保留空),但你可以强制一个特定的编码要返回,通过设置“gzip压缩”或“(无编码)
'encodeLevel' : 编码压缩级别(0到9,默认9)
'contentTypeCharset' : 追加到发送的Content - Type头。设置一个falsey值删除。 (默认的UTF - 8“)
'rewriteCssUris' : 如果为true,服务()会自动设定“currentDir”,minifier选项以启用URI的CSS文件复写(默认为true)
'bubbleCssImports' : 如果为true,所有的@联合CSS的进口报关单文件将被移动到顶部。请注意,这可能会改变有效的CSS值由于为了改变。 (默认为false)
'debug' : 设置为true,以缩小与“行”的控制器的所有来源,这简化合并的文件的调试。这也防止了304响应。 @see Minify_Lines::minify()
'minifiers' : 重写缩小minifier功能的默认选择一个特定的内容类型,指定在您的回调的关键
'minifierOptions' : 发送minifier功能的选项,指定您的选择根据内容类型的关键。例如要发送的CSS minifier选项:
任何控制器选项都记录在该控制器的setupSources()方法。
@param mixed instance Minify_Controller_Base或字符串名称的子类控制器。例如“文件”
@param array $options 控制器/服务选项
@return mixed null,或者,如果“安静”选项设置为true,数组键“成功”(BOOL)“的StatusCode”(INT),“内容”(字符串),并“头”(阵列)。
public static function combine($sources, $options = array())
返回结合缩小的内容的来源无内部将使用缓存的内容将不会是HTTP编码。
@param array $sources 文件路径和/或Minify_Source对象的数组
@param array $options (可选)阵列,用于服务的选项。默认情况下这些都是已经设置:闲适= TRUE,encodeMethod= '',lastModifiedTime= 0。
public static function setDocRoot($unsetPathInfo = false)
在IIS中,创建$_SERVER['DOCUMENT_ROOT“]
@param bool $unsetPathInfo (默认为false)如果情况属实,$ _SERVER [“PATH_INFO”]将取消设置(这是与Apache的设置不一致)
protected static function _setupDebug($sources)
@param array $sources Minify_Source 实例
protected static function _combineMinify()
protected static function _getCacheId()
请为这一要求的一个独特的缓存ID。任何可能影响输出的设置是考虑到
protected static function _handleCssImports($css)
abstract class Minify_Controller_Base 缩小控制器的基类
控制器类的验证请求,并用它来创建源喜欢的contentType的微小和设置选项。这也是负责minifier代码加载后request.p CON
abstract public function setupSources($options);
安装控制器,并设置为缩小需要的选项Minify::source
@param array $options controller and Minify options
return array $options Minify::serve options
public function getDefaultMinifyOptions()
@return array options for Minify
public function getDefaultMinifers()
@return array minifier callbacks for common types
public function loadMinifier($minifierCallback)
如果您需要按需加载的代码,这不适合你,你需要重写此函数在子类。
@see Minify_Controller_Page::loadMinifier()
@param callback $minifierCallback callback of minifier function
public static function _fileIsSafe($file, $safeDirs)
是用户内允许目录中的文件,现有的,和JS / CSS/ HTML/ TXT的扩展?
@param string $file full file path (already processed by realpath())
@var array instances of Minify_Source, 它提供的内容和任何个人微小的需求。
public final function mixInDefaultOptions($options)
@param array $options user options
public final function analyzeSources($options = array())
分析源(如果有的话),并设置为选项“的contentType”“lastModifiedTime”如果他们已经不是。
@param array $options options for Minify
@return array options for Minify
class Minify_Controller_Files extends Minify_Controller_Base
public function setupSources($options)
Minify_Source:内容源缩小的缩小。这允许每个源微小的选项和文件的混合从其他来源的内容。
@var string HTTP内容类型(缩小缩小需要的常量之一:TYPE_*)
protected $_getContentFunc = null;
public function __construct($spec)
在规范阵列(),您可以提供到现有的“文件路径”(存在的文件将不被检查!)或给予'×××'(唯一字符串为内容),“内容”(字符串的内容)和“lastModified”(最后更新unixtime)。
作为一种快捷方式,控制器将取代“/ /”开头一个文件路径和$ _SERVER['DOCUMENT_ROOT“]。 '/'。
public static function haveNoMinifyPrefs($sources)
public static function getDigest($sources)
public static function getContentType($sources)
从内容类型组的来源这就是所谓的一个“内容”选项,如果用户没有通过
Minify_Cache_File 缓存文件处理
public function __construct($path = '', $fileLocking = false)
public function store($id, $data)
public function isValid($id, $srcMtime)
@param string $id cache id (e.g. a filename)
@param int $srcMtime mtime of the original source file(s)
@param string $id cache id (e.g. a filename)
转载于:https://blog.51cto.com/hoogle/734305
Minify框架分析,主要功能类简介相关推荐
- DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)
DL之Keras:基于Keras框架建立模型实现[预测]功能的简介.设计思路.案例分析.代码实现之详细攻略(经典,建议收藏) 目录 Keras框架使用分析 Keras框架设计思路 案例分析 代码实现 ...
- Linux内核4.14版本——drm框架分析(1)——drm简介
目录 1. DRM简介(Direct Rendering Manager) 1.1 DRM发展历史 1.2 DRM架构对比FB架构优势 1.3 DRM图形显示框架 1.4 DRM图形显示框架涉及元素 ...
- php主控,IcePHP框架中的快速后台中的通用CRUD功能框架(五) SCrud 主控类
/** * CRUD主控类 * @author bluehire */ class SCrud { const PATH_VIEW='crud'; //视图路径名 /** * 当前列表操作配置 * @ ...
- Spring框架核心之(一)Spring简介
Spring简介 一.什么是Spring Spring是一个轻量级开源框架,他是一个基于 ...
- Java服务框架分析
Android服务框架由本地服务框架(Native Service Framework)和Java服务框架(Java Service Framework)两部分组成. Java服务框架是一系列类的集合 ...
- DL之paddlepaddle:百度深度学习框架paddlepaddle飞桨的简介、安装、使用方法之详细攻略
DL之paddlepaddle:百度深度学习框架paddlepaddle飞桨的简介.安装.使用方法之详细攻略 目录 paddlepaddle百度深度学习框架的简介 1.飞桨全景图与四大领先技术 2.丰 ...
- Linux USB驱动框架分析 【转】
转自:http://blog.chinaunix.net/uid-11848011-id-96188.html 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结 ...
- linux音频框架分析,Alsa音频子系统Codec---al5623.c内核代码框架分析
驱动代码位于: sound/soc/codec/alc5623.c 随便找个Linux内核都会有. 1.首先进行i2c总线驱动加载在: static int __init alc5623_modini ...
- Prototype 框架分析(一)
Prototype 框架分析(一) Class 关于javascript的面向对象设计可以参看MSDN上的文章<JavaScript使用面向对象的技术创建高级 Web 应用程序>,这样理解 ...
最新文章
- 行业发展之关于有用信息和无用信息的思考
- 【PC工具】虚拟串口工具Configure Virtual Serial Port Driver6.9汉化版
- 高级数据结构与算法 | 二叉搜索树(Binary Search Tree)
- 温故而知新,UI学习中的大部分控件及常用的基础都整理了一下,很长~~~~~~~~~很长!!!!!!!...
- 使用ssh免密码登录Linux服务器
- Oracle 中启用 scott 用户 的方法
- Mybatis There is no getter for property named 'XXX' in 'class java.lang.XXX
- 程序员的算法课(12)-使用通配符*,?等来查找字符串
- 全球最抠门的商场,一年卖了1000亿
- 加权回归估计_比率估计与回归估计
- 无限极分类php简单,创建无限极分类树型结构的简单方法
- 广数系统加工中心编程_加工中心宏程序编程应用案例分享
- [原]VC被控制时关闭极域电子教室、破解联想硬盘保护系统密码(下)
- 10个不错的编程等宽字体
- DirectX11--HR宏关于dxerr库的替代方案
- idea如何连接夜神模拟器
- 销售额预测_机器学习
- Spring boot 整合Druid框架不支持瀚高,报dbtype not support
- 宝塔面板服务器ip地址修改_服务器搭建网站完整教程(宝塔面板+wordpress)
- 实现语音视频录制源码分享