谷歌关闭通过PHP与Externs

时间:2015-03-07 20:53:19

标签: php google-closure-compiler google-closure google-closure-library

我正在尝试使用Google Closure但通过php库调用。

这是我尝试使用

的代码
https://code.google.com/p/php-closure/

到目前为止它似乎运作良好。但是我现在需要使用" Externs" Google Closure的功能。

我已经浏览了php库代码,但我不确定如何添加此功能。该库似乎调用了Google Closure在线API代码,所以我假设添加externs功能,我只需要传递附加到正确变量的正确字符串。

我不会在这里发布整个图书馆,因为它很难阅读,但我已经努力合并这个功能。

首先,我将变量添加到库

var $_srcs = array();
var $_mode = "WHITESPACE_ONLY";
var $_warning_level = "DEFAULT";
var $_use_closure_library = false;
var $_pretty_print = false;
var $_debug = true;
var $_cache_dir = "";
var $_code_url_prefix = "";
var $_extern_file = ""; //my new code

添加到哈希函数

function _getHash() {
return md5(implode(",", $this->_srcs) . "-" .
    $this->_mode . "-" .
    $this->_warning_level . "-" .
    $this->_use_closure_library . "-" .
    $this->_pretty_print . "-" .
    $this->_extern_file . "-" .     //here again
    $this->_debug);
}

添加到参数列表

function _getParamList() {
$params = array();
...
$params["warning_level"] = $this->_warning_level;
$params["extern_file"] = $this->_extern_file;      //again here
if ($this->_pretty_print) $params["formatting"] = "pretty_print";
if ($this->_use_closure_library) $params["use_closure_library"] = "true";
$params["output_info_1"] = "compiled_code";
$params["output_info_2"] = "statistics";
$params["output_info_3"] = "warnings";
$params["output_info_4"] = "errors";
return $params;
}

我的添加外部文件功能

function externs($file) {
  $this->_extern_file = $file;
  return $this;
}

然后是我的用户电话

$c->add("js/my-app.js")
->add("js/popup.js")
->externs("js/externs.js")    //new code
->cacheDir("/tmp/js-cache/")
->write();

尝试执行代码时,我得到与原始代码相同的结果。看来我试图传递的外部文件没有被处理。

如果其他人对此功能/库感兴趣,请随时发布任何想法。

感谢。

0 个答案:

没有答案