主要功能类简介

config.php      默认缩小应用程序的配置

index.php:为实施默认缩小的前端控制器请勿编辑!通过config.php和groupsConfig.php配置实用程序

Minify:缩小 - 联合收割机,minifies,和缓存的JavaScript和CSS文件需求

abstract class Minify_Controller_Base  缩小控制器的基类

Minify_Source:内容源缩小的缩小。这允许每个源微小的选项和文件的混合从其他来源的内容。

Minify_Cache_File 缓存文件处理

主要功能类简介

config.php 默认缩小应用程序的配置

路径:min/config.php

$min_allowDebugFlag = FALSE;

在“调试”模式,缩小可以结合起来,没有微小的文件和添加注释,以表明原始文件的行#。

为了让调试,将此选项设置为true,并添加“&debug= 1”,一个URI。例如/分钟/ F = script1.js,script2.js及调试= 1

$min_errorLogger = false;

设置为true,将消息记录到FirePHP(Firefox的Firebug的插件)。设置虚假的,没有错误日志记录(缩小可能会稍快)。@链接http://www.firephp.org/

如果你想使用自定义的错误记录器,记录仪设置为实例。你的对象应该有一个方法的日志(字符串$消息)。

@ TODO缓存系统没有错误日志记录。

$min_enableBuilder = TRUE;

允许使用缩小的URI生成器应用程序。如果您不再需要此设置为false。

/ / $ min_cachePath =“C:\ \ WINDOWS \ \ TEMP”;

/ / $ min_cachePath ='/ tmp目录“;

/ / $ min_cachePath = preg_replace('/ ^ \ \ D +;/',“,session_save_path());

为了获得最佳性能,在这里指定temp目录。否则缩小将加载额外的代码来猜测。下面的一些例子:

$min_documentRoot = '';

/ / $ min_documentRoot = SUBSTR(__FILE__,0,strlen的(__FILE__) - 15);

/ / $ min_documentRoot = $ _SERVER ['SUBDOMAIN_DOCUMENT_ROOT'];

留下一个空字符串使用PHP的$_SERVER ['DOCUMENT_ROOT“]。

在某些服务器上,这个值可能配置错误或丢失。如果是这样,设置此完整的文档的根路径没有结尾的斜线。

例如: /首页/帐户名/的public_html“或”C\\ XAMPP\\htdocs中“

如果/分钟/直接在您的文档根目录,只是取消注释第二行。第三行可能会在一些Apache服务器工作。

$min_cacheFileLocking = TRUE;

缓存文件锁定。设置为false,如果文件系统是NFS。至少在一NFS系统的羊群- ING尝试PHP停顿30秒!

$min_serveOptions [“bubbleCssImports'] = FALSE;

结合后,可以将多个CSS文件的规则@进口报关单,是无效的。缩小将尝试检测当发生这种情况,并放置一个警告注释在CSS的输出顶部。要解决此您可以在你的CSS文件移动@进口,或启用此选项,这将将所有@进口到输出的顶端。请注意,移动@进口可能影响CSS值(这就是为什么这个选项默认是关闭的)。

$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;

最大的“F”GET参数,可以在指定的文件

$min_symlinks = array();

如果您缩小符号链接的目录中存储的CSS文件,URI重写算法可能会失败。为了防止这种情况,提供了一个链接路径的数组目标路径,链接路径的文档根目录内。

由于路径需要为规范化的工作,使用“/ /”来代替在链接路径的文档根目录(数组的键)。例如:的<code>

阵列(“/ /符号链接'=>'/实际/目标/路径”)/ / UNIX

阵列(“/ /静态'=>”D:\ \ staticStorage“)/ /视窗 </ code>的

$min_uploaderHoursBehind = 2;

如果你从windows系统上传文件至非windows系统服务器中,windows可能对文件提示错误的修改时间,

由于源文件频繁地上传,可能导致减少保持服务的缓存文件时效。(例如,可能超过1小时)

修改文件后迅速地上传,利用会话命令更新服务器上的修改时间,如修改时间跳到很多段时间之前,将此变量设置为此数字。如果该文件的修改时间向后移动,这不应该是需要的。

在windows系统SFTP客户端winscp,有一个选项不用改变下面变量便可解决这个问题。

在登出环境下,选择"用DST调整远程客户端时间戮"。

$min_libPath = dirname(__FILE__) . '/lib';

缩小的lib文件夹的路径。如果你碰巧来移动它,改变此相应。

ini_set(“zlib.output_compression','0');

尝试禁用output_compression(可能没有效果)

index.php:为实施默认缩小的前端控制器请勿编辑!通过config.php和groupsConfig.php配置实用程序

路径:min/index.php

//获得min路径

define('MINIFY_MIN_DIR', dirname(__FILE__));

//加载配置文件

require MINIFY_MIN_DIR . '/config.php';

//设置包含路径

set_include_path($min_libPath . PATH_SEPARATOR . get_include_path());

require 'Minify.php';

//创建缓存对象

Minify::$uploaderHoursBehind = $min_uploaderHoursBehind;

Minify::setCache(

isset($min_cachePath) ? $min_cachePath : ''

,$min_cacheFileLocking

);

//设置文档根目录

if ($min_documentRoot) {

$_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;

}

if ($min_errorLogger) {

require_once 'Minify/Logger.php';

if (true === $min_errorLogger) {

require_once 'FirePHP.php';

Minify_Logger::setLogger(FirePHP::getInstance(true));

} else {

Minify_Logger::setLogger($min_errorLogger);

}

}

//检查的URI版本

if (preg_match('/&\\d/', $_SERVER['QUERY_STRING'])) {

$min_serveOptions['maxAge'] = 31536000;

}

if (isset($_GET['g'])) {

//以及需要配置的群体

$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) {

header('Location: builder/');

exit();

} else {

header("Location: /");

exit();

}

Minify:缩小 - 联合收割机,minifies,和缓存的JavaScript和CSS文件需求

const VERSION = '2.1.3';

const TYPE_CSS = 'text/css';

const TYPE_HTML = 'text/html';

const TYPE_JS = 'application/x-javascript';   有一些较理想的JS内容类型的辩论,但是这是Apache的默认和雅虎使用..

public static $uploaderHoursBehind = 0;

多少个小时的背后是上传文件的文件修改时间?如果您上传的文件从Windows到非Windows服务器,Windows可能报告文件的不正确修改时间。修改和上传后立即文件,使用touch命令更新服务器上的文件的修改时间。如果在时间修改时间跳跃提前几个小时,设置这个变量,这个数字。如果的修改时间向后移动,这不应该是必要的。

public static $importWarning = "\n";

如果该字符串不是空的服务()选项'bubbleCssImports“没有设置,那么服务()将检查CSS的@ import声明文件出现在合并后的样式表为时已晚。如果找到了,服务()会在前面加上输出与此警告。

private static $_cache = null;

@var mixed Minify_Cache_* 对象或null(即没有服务器使用高速缓存)

protected static $_controller = null;

@var Minify_Controller 当前请求的主动控制器

protected static $_options = null;

@var array options 当前请求的选项

方法:

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),这仅适用于,如果第一个参数是一个字符串。

@return null

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“)

'maxAge' : 这个设定的秒数,客户端应该使用它的缓存前与服务器的重新验证。这集的Cache - Control:最大的年龄和 Expires头。不像老“setExpires”的设置,此设置不会防止有条件的GETs。请注意,这已无关,与服务器端缓存。

'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选项:

'contentType' : (可选),这仅仅是必要的,如果您的文件扩展名不 JS/ CSS / HTML。不管源文件将被发送给定的内容类型扩展,因此这不应该是在A组中使用的配置与其他的JavaScript / CSS文件。

任何控制器选项都记录在该控制器的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。

@return string

public static function setDocRoot($unsetPathInfo = false)

在IIS中,创建$_SERVER['DOCUMENT_ROOT“]

@param bool $unsetPathInfo (默认为false)如果情况属实,$ _SERVER [“PATH_INFO”]将取消设置(这是与Apache的设置不一致)

@return null

protected static function _setupDebug($sources)

设置源使用Minify_Lines

@param array $sources Minify_Source 实例

@return null

protected static function _combineMinify()

结合源和minifies结果。

@return string

protected static function _getCacheId()

请为这一要求的一个独特的缓存ID。任何可能影响输出的设置是考虑到

@return string

protected static function _handleCssImports($css)

Bubble CSS @imports顶端或预先警告如果

@import 没有检测到在顶部.

abstract class Minify_Controller_Base  缩小控制器的基类

控制器类的验证请求,并用它来创建源喜欢的contentType的微小和设置选项。这也是负责minifier代码加载后request.p CON

abstract public function setupSources($options);

安装控制器,并设置为缩小需要的选项Minify::source

您必须覆盖在子类控制器的这个方法来设置$>来源。如果请求是无效的,确保美元 - >来源留下一个空数组。然后地带任何控制器特定的选项$选项并返回它。为了提供文件,$>来源必须是一个数组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()

该控制器的默认minifiers。重写子类来改变默认值.

@return array minifier callbacks for common types

public function loadMinifier($minifierCallback)

加载任何要执行给定的minifier回调的代码。

控制器负责按需加载的微小代码通过这个方法。这种内置的功能将只加载类尚未定义类的静态方法回调。它使用PEAR的惯例,所以,给定的数组(“Jimmy_Minifier”,“minCss”),这功能将包括“麦/ Minifier.php'。

如果您需要按需加载的代码,这不适合你,你需要重写此函数在子类。

@see Minify_Controller_Page::loadMinifier()

@param callback $minifierCallback callback of minifier function

@return null

public static function _fileIsSafe($file, $safeDirs)

是用户内允许目录中的文件,现有的,和JS / CSS/ HTML/ TXT的扩展?

这是一个方便的功能控制器接受用户给定的路径

@param string $file full file path (already processed by realpath())

@param array $safeDirs directories where files are safe to serve. Files can alsobe in subdirectories of these directories.

@return bool file is safe

public $sources = array();

@var array instances of Minify_Source, 它提供的内容和任何个人微小的需求。

@see Minify_Source

public final function mixInDefaultOptions($options)

混合使用用户指定的选项在默认的控制器选项

@param array $options user options

@return array mixed options

public final function analyzeSources($options = array())

分析源(如果有的话),并设置为选项“的contentType”“lastModifiedTime”如果他们已经不是。

@param array $options options for Minify

@return array options for Minify

protected function log($msg)

发送消息,以缩小记录仪

@param string $msg

@return null

class Minify_Controller_Files extends Minify_Controller_Base

minifying一组文件的控制器类

public function setupSources($options)

设置文件源

Minify_Source:内容源缩小的缩小。这允许每个源微小的选项和文件的混合从其他来源的内容。

属性:

public $lastModified = null;

@var int 最后修改时间

public $minifier = null;

@var 回调函数minifier专门为这次的来源.

public $minifyOptions = null;

@var array 微小的选项,具体到这个源。

public $filepath = null;

@var string 文件的完整路径

public $contentType = null;

@var string HTTP内容类型(缩小缩小需要的常量之一:TYPE_*)

protected $_content = null;

protected $_getContentFunc = null;

protected $_id = null;

方法:

public function __construct($spec)

创建一个Minify_Source。

在规范阵列(),您可以提供到现有的“文件路径”(存在的文件将不被检查!)或给予'×××'(唯一字符串为内容),“内容”(字符串的内容)和“lastModified”(最后更新unixtime)。

作为一种快捷方式,控制器将取代“/ /”开头一个文件路径和$ _SERVER['DOCUMENT_ROOT“]。 '/'。

public function getContent()

返回文件内容

public function getId()

返回文件名称ID

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 getSize($id)

得到一个高速缓存的大小的入口

public function isValid($id, $srcMtime)

缓存条目是否存在?

@param string $id cache id (e.g. a filename)

@param int $srcMtime mtime of the original source file(s)

@return bool exists

public function display($id)

把缓存内容输出

@param string $id cache id (e.g. a filename)

public function fetch($id)

取缓存内容

@param string $id cache id (e.g. a filename)

@return string

public function getPath()

取缓存路径使用

@return string

转载于:https://blog.51cto.com/hoogle/734305

Minify框架分析,主要功能类简介相关推荐

  1. DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)

    DL之Keras:基于Keras框架建立模型实现[预测]功能的简介.设计思路.案例分析.代码实现之详细攻略(经典,建议收藏) 目录 Keras框架使用分析 Keras框架设计思路 案例分析 代码实现 ...

  2. Linux内核4.14版本——drm框架分析(1)——drm简介

    目录 1. DRM简介(Direct Rendering Manager) 1.1 DRM发展历史 1.2 DRM架构对比FB架构优势 1.3 DRM图形显示框架 1.4 DRM图形显示框架涉及元素 ...

  3. php主控,IcePHP框架中的快速后台中的通用CRUD功能框架(五) SCrud 主控类

    /** * CRUD主控类 * @author bluehire */ class SCrud { const PATH_VIEW='crud'; //视图路径名 /** * 当前列表操作配置 * @ ...

  4. Spring框架核心之(一)Spring简介

                                                            Spring简介 一.什么是Spring Spring是一个轻量级开源框架,他是一个基于 ...

  5. Java服务框架分析

    Android服务框架由本地服务框架(Native Service Framework)和Java服务框架(Java Service Framework)两部分组成. Java服务框架是一系列类的集合 ...

  6. DL之paddlepaddle:百度深度学习框架paddlepaddle飞桨的简介、安装、使用方法之详细攻略

    DL之paddlepaddle:百度深度学习框架paddlepaddle飞桨的简介.安装.使用方法之详细攻略 目录 paddlepaddle百度深度学习框架的简介 1.飞桨全景图与四大领先技术 2.丰 ...

  7. Linux USB驱动框架分析 【转】

    转自:http://blog.chinaunix.net/uid-11848011-id-96188.html 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结 ...

  8. linux音频框架分析,Alsa音频子系统Codec---al5623.c内核代码框架分析

    驱动代码位于: sound/soc/codec/alc5623.c 随便找个Linux内核都会有. 1.首先进行i2c总线驱动加载在: static int __init alc5623_modini ...

  9. Prototype 框架分析(一)

    Prototype 框架分析(一) Class 关于javascript的面向对象设计可以参看MSDN上的文章<JavaScript使用面向对象的技术创建高级 Web 应用程序>,这样理解 ...

最新文章

  1. 行业发展之关于有用信息和无用信息的思考
  2. 【PC工具】虚拟串口工具Configure Virtual Serial Port Driver6.9汉化版
  3. 高级数据结构与算法 | 二叉搜索树(Binary Search Tree)
  4. 温故而知新,UI学习中的大部分控件及常用的基础都整理了一下,很长~~~~~~~~~很长!!!!!!!...
  5. 使用ssh免密码登录Linux服务器
  6. Oracle 中启用 scott 用户 的方法
  7. Mybatis There is no getter for property named 'XXX' in 'class java.lang.XXX
  8. 程序员的算法课(12)-使用通配符*,?等来查找字符串
  9. 全球最抠门的商场,一年卖了1000亿
  10. 加权回归估计_比率估计与回归估计
  11. 无限极分类php简单,创建无限极分类树型结构的简单方法
  12. 广数系统加工中心编程_加工中心宏程序编程应用案例分享
  13. [原]VC被控制时关闭极域电子教室、破解联想硬盘保护系统密码(下)
  14. 10个不错的编程等宽字体
  15. DirectX11--HR宏关于dxerr库的替代方案
  16. idea如何连接夜神模拟器
  17. 销售额预测_机器学习
  18. Spring boot 整合Druid框架不支持瀚高,报dbtype not support
  19. 宝塔面板服务器ip地址修改_服务器搭建网站完整教程(宝塔面板+wordpress)
  20. 实现语音视频录制源码分享

热门文章

  1. Github(4)-远程操作
  2. 《集体智慧编程》笔记(2 / 12):提供推荐
  3. STL源码剖析 关联式容器 红黑树
  4. 数学建模 分支限界算法求解整数规划原理以及编程实现
  5. Docker CEO Ben Golub:Docker借助开源、天时走向成功
  6. 身体曲线如何反映出健康
  7. HTTP协议状态码详解
  8. windows 下启动zookeeper的zkServer.cmd服务闪退
  9. holer实现外网访问内网数据库
  10. 结对项目——Subway