PHP Classes

File: libraries/vendor/predis/predis/bin/create-phar

Recommend this page to a friend!
  Classes of Duong Huynh Nghia   PHP Slim Framework 3 Modular Application   libraries/vendor/predis/predis/bin/create-phar   Download  
File: libraries/vendor/predis/predis/bin/create-phar
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP Slim Framework 3 Modular Application
Create modular applications using Slim Framework
Author: By
Last change:
Date: 7 years ago
Size: 2,210 bytes
 

Contents

Class file image Download
#!/usr/bin/env php
<?php

/*
 * This file is part of the Predis package.
 *
 * (c) Daniele Alessandri <suppakilla@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

// -------------------------------------------------------------------------- //
// In order to be able to execute this script to create a Phar archive of Predis,
// the Phar module must be loaded and the "phar.readonly" directive php.ini must
// be set to "off". You can change the values in the $options array to customize
// the creation of the Phar archive to better suit your needs.
// -------------------------------------------------------------------------- //

$options = array(
   
'name' => 'predis',
   
'project_path' => __DIR__ . '/../src',
   
'compression' => Phar::NONE,
   
'append_version' => true,
);

function
getPharFilename($options)
{
   
$filename = $options['name'];

   
// NOTE: do not consider "append_version" with Phar compression do to a bug in
    // Phar::compress() when renaming phar archives containing dots in their name.
   
if ($options['append_version'] && $options['compression'] === Phar::NONE) {
       
$versionFile = @fopen(__DIR__ . '/../VERSION', 'r');

        if (
$versionFile === false) {
            throw new
Exception("Could not locate the VERSION file.");
        }

       
$version = trim(fgets($versionFile));
       
fclose($versionFile);
       
$filename .= "_$version";
    }

    return
"$filename.phar";
}

function
getPharStub($options)
{
    return <<<EOSTUB
<?php
Phar::mapPhar('predis.phar');
spl_autoload_register(function (\$class) {
    if (strpos(\$class, 'Predis\\\\') === 0) {
        \$file = 'phar://predis.phar/'.strtr(substr(\$class, 7), '\\\', '/').'.php';
        if (file_exists(\$file)) {
            require \$file;
            return true;
        }
    }
});
__HALT_COMPILER();
EOSTUB;
}

// -------------------------------------------------------------------------- //

$phar = new Phar(getPharFilename($options));
$phar->compress($options['compression']);
$phar->setStub(getPharStub($options));
$phar->buildFromDirectory($options['project_path']);