for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* FileMinifier.php - JS and CSS file minifier
*
* Minify the javascript code generated by the Jaxon library and plugins.
* @package jaxon-utils
* @author Thierry Feuzeu <[email protected]>
* @copyright 2022 Thierry Feuzeu <[email protected]>
* @license https://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
* @link https://github.com/jaxon-php/jaxon-core
*/
namespace Jaxon\Utils\File;
use JShrink\Minifier;
use Exception;
use function file_get_contents;
use function file_put_contents;
use function is_file;
class FileMinifier
{
* Read the file content
* @param string $sPath
* @return string|false
private function readFile(string $sPath)
try
return file_get_contents($sPath);
}
catch(Exception $e)
return false;
* @param string $sCode
private function minifyCode(string $sCode)
return Minifier::minify($sCode);
return JShrink\Minifier::minify($sCode)
boolean
false|string
* Minify javascript code
* @param string $sJsFile The javascript file to be minified
* @param string $sMinFile The minified javascript file
* @return bool
public function minify(string $sJsFile, string $sMinFile): bool
if(($sJsCode = $this->readFile($sJsFile)) === false ||
($sMinCode = $this->minifyCode($sJsCode)) === false)
file_put_contents($sMinFile, $sMinCode);
return is_file($sMinFile);