63 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
 | 
						|
# required: PHP 5.3+ and zlib extension
 | 
						|
 | 
						|
// ini option check
 | 
						|
if (ini_get('phar.readonly')) {
 | 
						|
    echo "php.ini: set the 'phar.readonly' option to 0 to enable phar creation\n";
 | 
						|
    exit(1);
 | 
						|
}
 | 
						|
 | 
						|
// output name
 | 
						|
$pharName = 'Matrix.phar';
 | 
						|
 | 
						|
// target folder
 | 
						|
$sourceDir = __DIR__ . DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR;
 | 
						|
 | 
						|
// default meta information
 | 
						|
$metaData = array(
 | 
						|
    'Author'      => 'Mark Baker <mark@lange.demon.co.uk>',
 | 
						|
    'Description' => 'PHP Class for working with Matrix numbers',
 | 
						|
    'Copyright'   => 'Mark Baker (c) 2013-' . date('Y'),
 | 
						|
    'Timestamp'   => time(),
 | 
						|
    'Version'     => '0.1.0',
 | 
						|
    'Date'        => date('Y-m-d')
 | 
						|
);
 | 
						|
 | 
						|
// cleanup
 | 
						|
if (file_exists($pharName)) {
 | 
						|
    echo "Removed: {$pharName}\n";
 | 
						|
    unlink($pharName);
 | 
						|
}
 | 
						|
 | 
						|
echo "Building phar file...\n";
 | 
						|
 | 
						|
// the phar object
 | 
						|
$phar = new Phar($pharName, null, 'Matrix');
 | 
						|
$phar->buildFromDirectory($sourceDir);
 | 
						|
$phar->setStub(
 | 
						|
<<<'EOT'
 | 
						|
<?php
 | 
						|
    spl_autoload_register(function ($className) {
 | 
						|
        include 'phar://' . $className . '.php';
 | 
						|
    });
 | 
						|
 | 
						|
    try {
 | 
						|
        Phar::mapPhar();
 | 
						|
    } catch (PharException $e) {
 | 
						|
        error_log($e->getMessage());
 | 
						|
        exit(1);
 | 
						|
    }
 | 
						|
 | 
						|
    include 'phar://functions/sqrt.php';
 | 
						|
 | 
						|
    __HALT_COMPILER();
 | 
						|
EOT
 | 
						|
);
 | 
						|
$phar->setMetadata($metaData);
 | 
						|
$phar->compressFiles(Phar::GZ);
 | 
						|
 | 
						|
echo "Complete.\n";
 | 
						|
 | 
						|
exit();
 |