1<?php 2 3/* 4 * This file is part of the Assetic package, an OpenSky project. 5 * 6 * (c) 2010-2014 OpenSky Project Inc 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace Assetic\Filter; 13 14use Assetic\Asset\AssetInterface; 15 16/** 17 * Runs assets through Packager, a JavaScript Compressor/Obfuscator. 18 * 19 * PHP Version of the Dean Edwards's Packer, ported by Nicolas Martin. 20 * 21 * @link http://joliclic.free.fr/php/javascript-packer/en/ 22 * @author Maximilian Walter <github@max-walter.net> 23 */ 24class PackerFilter implements FilterInterface 25{ 26 protected $encoding = 'None'; 27 28 protected $fastDecode = true; 29 30 protected $specialChars = false; 31 32 public function setEncoding($encoding) 33 { 34 $this->encoding = $encoding; 35 } 36 37 public function setFastDecode($fastDecode) 38 { 39 $this->fastDecode = (bool) $fastDecode; 40 } 41 42 public function setSpecialChars($specialChars) 43 { 44 $this->specialChars = (bool) $specialChars; 45 } 46 47 public function filterLoad(AssetInterface $asset) 48 { 49 } 50 51 public function filterDump(AssetInterface $asset) 52 { 53 $packer = new \JavaScriptPacker($asset->getContent(), $this->encoding, $this->fastDecode, $this->specialChars); 54 $asset->setContent($packer->pack()); 55 } 56} 57