Create a gist now

Instantly share code, notes, and snippets.

@odan /a_phar.md
Last active Jul 4, 2018

Embed
What would you like to do?
Create a PHP Phar file

Create a PHP Phar file

Run: php create-phar.php

app.phar successfully created

Start a phar file

Run: php app.phar

App started

<?php
// Filename: app/index.php
// Optional load composer autoloader
//require_once __DIR__ . '/vendor/autoload.php';
echo "App started";
<?php
// better set to php.ini phar.readonly = 0
ini_set("phar.readonly", 0);
$pharFile = 'app.phar';
// clean up
if (file_exists($pharFile)) {
unlink($pharFile);
}
if (file_exists($pharFile . '.gz')) {
unlink($pharFile . '.gz');
}
// create phar
$p = new Phar($pharFile);
// creating our library using whole directory
$p->buildFromDirectory('app/');
// pointing main file which requires all classes
$p->setDefaultStub('index.php', '/index.php');
// plus - compressing it into gzip
$p->compress(Phar::GZ);
echo "$pharFile successfully created";
@PioneerDark

This comment has been minimized.

Show comment
Hide comment

nice

@sohelamin

This comment has been minimized.

Show comment
Hide comment
@sohelamin

sohelamin May 21, 2018

Awesome (y)

Awesome (y)

@izharaazmi

This comment has been minimized.

Show comment
Hide comment
@izharaazmi

izharaazmi Jun 19, 2018

You cannot set ini_set("phar.readonly", 0); directive in runtime. It must only be set in php.ini file for security reasons. See Manual at php.net

You cannot set ini_set("phar.readonly", 0); directive in runtime. It must only be set in php.ini file for security reasons. See Manual at php.net

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment