日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Minify框架分析,主要功能类简介

發布時間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Minify框架分析,主要功能类简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要功能類簡介

config.php????? 默認縮小應用程序的配置

index.php:為實施默認縮小的前端控制器請勿編輯!通過config.phpgroupsConfig.php配置實用程

Minify:縮小 - 聯合收割機,minifies,和緩存的JavaScriptCSS文件需求

abstract class Minify_Controller_Base? 縮小控制器的基類

Minify_Source:內容源縮小的縮小。這允許每個源微小的選項和文件的混合從其他來源的內容。

Minify_Cache_File 緩存文件處理

?

主要功能類簡介

config.php 默認縮小應用程序的配置

路徑:min/config.php

?

$min_allowDebugFlag = FALSE;

在“調試”模式,縮小可以結合起來,沒有微小的文件和添加注釋,以表明原始文件的行#。

為了讓調試,將此選項設置為true,并添加“&debug= 1”,一個URI。例如/分鐘/ F = script1.jsscript2.js及調試= 1

?

$min_errorLogger = false;

設置為true,將消息記錄到FirePHPFirefoxFirebug的插件)。設置虛假的,沒有錯誤日志記錄(縮小可能會稍快)。@鏈接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__0strlen的(__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文件的規則@進口報關單,是無效的??s小將嘗試檢測當發生這種情況,并放置一個警告注釋在CSS的輸出頂部。要解決此您可以在你的CSS文件移動@進口,或啟用此選項,這將將所有@進口到輸出的頂端。請注意,移動@進口可能影響CSS值(這就是為什么這個選項默認是關閉的)。

?

$min_serveOptions['MaxAge'] = 1800;

瀏覽器緩存的最大年齡在幾秒鐘內。在此期限之后,瀏覽器將發送另外一個條件GET。使用低流量在一段較長的時間內但你可能要縮短作出改變之前,如果它的關鍵立即看到這些變化。

注意:盡管此設置,如果包括在年底的數字 querystring中,的MaxAge將被設定為一年。例如/分鐘/ F = hello.css123456

?

/ / $ min_serveOptions ['minApp] ['allowDirs'] =陣列('/ / JS''/ / CSS”);

如果你想限制的“F”選項內/以下文件以下DOCUMENT_ROOT的特定目錄,此設置。您仍然需要包括在目錄中FB GET參數。=DOCUMENT_ROOT的快捷方式

?

$min_serveOptions ['minApp'] ['groupsOnly'] = FALSE;

設置為true,禁用的“FGET參數用于指定文件。只有“G”參數將予以考慮。

?

$min_serveOptions [“minApp'] ['MAXFILES'] = 10;

最大的“FGET參數,可以在指定的文件

?

$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.phpgroupsConfig.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,和緩存的JavaScriptCSS文件需求

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' : 編碼壓縮級別(09,默認9

'contentTypeCharset' : 追加到發送的Content - Type頭。設置一個falsey值刪除。 (默認的UTF - 8“)

'maxAge' : 這個設定的秒數,客戶端應該使用它的緩存前與服務器的重新驗證。這集的Cache - Control:最大的年齡和 Expires頭。不像老“setExpires”的設置,此設置不會防止有條件的GETs。請注意,這已無關,與服務器端緩存。

'rewriteCssUris' : 如果為true,服務()會自動設定“currentDir,minifier選項以啟用URICSS文件復寫(默認為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 (可選)陣列,用于服務的選項。默認情況下這些都是已經設置:閑適= TRUEencodeMethod= ''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框架分析,主要功能类简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。