Skip to content

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

License

Notifications You must be signed in to change notification settings

Machy8/google-closure-compiler

Repository files navigation

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