Last active
August 29, 2015 14:27
-
-
Save Abhinav1217/7544b2b29124853604fb to your computer and use it in GitHub Desktop.
A simple php script to Minify PHP files in PHP project using PHP shell command in terminal..
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @author Abhinav Kulshreshtha | |
* @version 1.0 | |
* @copyright 2015-End_of_Time Abhinav Kulshreshtha | |
* @license DO WHAT THE F**K YOU WANT TO PUBLIC LICENSE < http://www.wtfpl.net/ > | |
* | |
* @todo Looks Like I missed managing symlinks. | |
*/ | |
$source = realpath('./Main/'); | |
$target = realpath('.').'/target'; | |
// Remove target directory if already exists. Makes testing easy | |
if (is_dir($target)) { | |
shell_exec('rm -rf '.$target); | |
} | |
// Sleep for few seconds to ensure Shell command works. | |
usleep(10000); | |
// Create Target Directory. | |
mkdir($target, 0755); | |
foreach ( | |
// A lot of silly object encapsulation, just because... | |
$iterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST) as $item) { | |
if ($item->isDir()) { | |
mkdir($target . DIRECTORY_SEPARATOR . $iterator->getSubPathName()); | |
} else { | |
// some debugging codes | |
// var_dump($item->getPathName()); | |
// var_dump($item->getExtension()); | |
// var_dump($target . DIRECTORY_SEPARATOR . $iterator->getSubPathName()); | |
$sourceFile = $item->getPathName(); | |
$targetFile = $target . DIRECTORY_SEPARATOR . $iterator->getSubPathName(); | |
// checking for php extensions | |
if(strcasecmp($item->getExtension(), 'php')===0){ | |
// Php files will be minified with the shell command. It is extreamly slow but works safe. | |
echo "Minifyinf php file using shell".PHP_EOL.'Source - $sourceFile'.PHP_EOL.'Target - $targetFile'; | |
shell_exec("php -w ".$sourceFile.' > '. $targetFile); | |
} else { | |
// all other non php files will be directly copied . | |
echo "Copying a ". $item->getExtension() ." file".PHP_EOL.'Source - $sourceFile'.PHP_EOL.'Target - $targetFile'; | |
copy($item, $target . DIRECTORY_SEPARATOR . $iterator->getSubPathName()); | |
} | |
echo PHP_EOL.'-------------------------'.PHP_EOL; // good looking messages on terminal. | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment