Skip to content
⚡ PHP client for the Google Closure Compiler API in one file.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.gitattributes
.gitignore
.travis.yml - Added travis yml Sep 23, 2017
Dockerfile
README.md
composer.json
docker-compose.yml
index.php
input.js
license.md
output.js

README.md

Google Closure Compiler

Build Status Coverage Status License

⚡ PHP client for the Google Closure Compiler API in one file.

Requirements

  • PHP 7.0+
  • If you use Nette Framework - v2.3+

Installation

1 - Download the Google Closure Compiler client using composer:

 composer require machy8/google-closure-compiler

2 - Usage:

Typical:

$compiler = new GoogleClosureCompiler\Compiler;
$response = $compiler->setJsCode($code)->compile();

if ($response && $response->isWithoutErrors()) {
    echo $response->getCompiledCode();

} else {
    echo $code;
}

Nette framework:


use GoogleClosureCompiler\Compiler;

/**
 * @var Compiler
 */
private $compiler;


public function __construct(Compiler $compiler) 
{
    $this->compiler = $compiler;
}


public function renderDefault() 
{
    $code = file_get_contents('/path/to/script.js');
    $response = $this->compiler->setJsCode($code)->compile();
    
    if ($response && $response->isWithoutErrors()) {
        $code = $response->getCompiledCode();
    }
    
    $this->template->jsCode = $code;
}

And in the config neon

extensions:
    - GoogleClosureCompiler\Bridges\Nette\GoogleClosureCompilerExtension

Usage

Direct and main information can be found on https://developers.google.com/closure/compiler/docs/api-ref.

Compiler

Returns GoogleClosureCompiler\Response if connection was successful otherwise returns NULL. setDefaultStreamContextCreateTimeout

Method Parameters Constants
compile
enableClosureCompiler
enableStatistics
excludeDefaultExterns
setCodeUrl string | string [] $url
setCompilationLevel string $level COMPILATION_LEVEL_*
setConnectionTimeout                 int $time                             
setExternsUrl string | string[] $value
setFormattingType string $type FORMATTING_*
setJsCode string $code
setJsExterns string $jsCode
setLanguage string $language LANGUAGE_*
setLanguageOut string $language LANGUAGE_OUT_*
setOutputFileName string $name
setWarningLevel string $level WARNING_LEVEL_*

Response

Is parsed json from response of previous request.

Method Returns
getCompiledCode string - compiled code
getErrors array - errors
getOutputFilePath string - url path to file
getResponse stdClass - whole response
getServerErrors array - server errors
getStatistics stdClass - statistics
getWarnings array - warnings
hasErrors bool - if code to compile contains errors
hasServerErrors bool - if response contains server errors
hasWarnings bool - if code to compile contains warnings
isWithoutErrors bool - combination of hasServerErrors & hasErrors
You can’t perform that action at this time.