From ee0bc27bc77b3ffc829aff90980605addfca616e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Monta=C3=B1ez?= Date: Thu, 7 Nov 2013 19:51:48 -0200 Subject: [PATCH] Revert "Tweaks on Compile." This reverts commit 426858cb00e2f0df2e0bad989d27724ca5a8cbd9. --- Mage/Command/BuiltIn/CompileCommand.php | 45 ++---------------- Mage/Compiler.php | 63 +++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 41 deletions(-) create mode 100644 Mage/Compiler.php diff --git a/Mage/Command/BuiltIn/CompileCommand.php b/Mage/Command/BuiltIn/CompileCommand.php index 0892cd7..c6bef80 100644 --- a/Mage/Command/BuiltIn/CompileCommand.php +++ b/Mage/Command/BuiltIn/CompileCommand.php @@ -12,10 +12,7 @@ namespace Mage\Command\BuiltIn; use Mage\Command\AbstractCommand; use Mage\Console; - -use Phar; -use RecursiveIteratorIterator; -use RecursiveDirectoryIterator; +use Mage\Compiler; use Exception; @@ -27,48 +24,14 @@ use Exception; class CompileCommand extends AbstractCommand { /** - * Compiles Magallanes into a PHAR executable + * @see \Mage\Compile::compile() */ public function run () { - if (ini_get('phar.readonly')) { - Console::output('The php.ini variable phar.readonly must be enabled.', 1, 2); - return; - } - Console::output('Compiling Magallanes... ', 1, 0); - $file = 'mage.phar'; - if (file_exists($file)) { - unlink($file); - } - - $phar = new Phar($file, 0, 'mage.phar'); - $phar->setSignatureAlgorithm(Phar::SHA1); - - $phar->startBuffering(); - - $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__), RecursiveIteratorIterator::CHILD_FIRST); - /** @var $path SplFileInfo */ - foreach ($iterator as $path) { - if ($path->isFile()) { - $phar->addFromString(str_replace(dirname(__DIR__).'/', '', $path->getPathname()), file_get_contents($path)); - } - } - - $phar->addFromString('mage', str_replace( - '$baseDir = dirname(dirname(__FILE__));', - '$baseDir = __DIR__;', - file_get_contents(__DIR__.'/../bin/mage') - )); - - $phar->setStub("#!/usr/bin/env php\nstopBuffering(); - - unset($phar); - - chmod($file, 0755); + $compiler = new Compiler; + $compiler->compile(); Console::output('Mage compiled successfully'); } diff --git a/Mage/Compiler.php b/Mage/Compiler.php new file mode 100644 index 0000000..7a30cc7 --- /dev/null +++ b/Mage/Compiler.php @@ -0,0 +1,63 @@ + +* +* For the full copyright and license information, please view the LICENSE +* file that was distributed with this source code. +*/ + +namespace Mage; + +use Phar; +use RecursiveIteratorIterator; +use RecursiveDirectoryIterator; + +/** + * Compiles the library into a .phar file + * + * @author Ismael Ambrosi + */ +class Compiler +{ + + /** + * Compiles the library + * + * @param string $file + */ + public function compile($file = 'mage.phar') + { + if (file_exists($file)) { + unlink($file); + } + + $phar = new Phar($file, 0, 'mage.phar'); + $phar->setSignatureAlgorithm(Phar::SHA1); + + $phar->startBuffering(); + + $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__), RecursiveIteratorIterator::CHILD_FIRST); + /** @var $path SplFileInfo */ + foreach ($iterator as $path) { + if ($path->isFile()) { + $phar->addFromString(str_replace(dirname(__DIR__).'/', '', $path->getPathname()), file_get_contents($path)); + } + } + + $phar->addFromString('mage', str_replace( + '$baseDir = dirname(dirname(__FILE__));', + '$baseDir = __DIR__;', + file_get_contents(__DIR__.'/../bin/mage') + )); + + $phar->setStub("#!/usr/bin/env php\nstopBuffering(); + + unset($phar); + + chmod($file, 0755); + } +}