PHP 8.5.0 Alpha 4 available for testing

Voting

: min(four, three)?
(Example: nine)

The Note You're Voting On

brunoczim
8 years ago
Here is a very simple program for creating phar files with CLI. Note that it requires phar.readonly in php.ini set to false (Off).

<?php
$filename
= "default";
$dir = "./";
$regex = "/^(?!.*build\\.php)(?:.*)$/";
$main = "main.php";
$shebang = "#!/usr/bin/env php";
$chmod = true;

for (
$i = 0; $i < $argc; $i++) {
switch (
$argv[$i]) {
case
"-o":
$i++;
if (
$i >= $argc) {
echo
"Missing output file name" . PHP_EOL;
exit(
1);
}
$filename = $argv[$i];
break;
case
"-i":
$i++;
if (
$i >= $argc) {
echo
"Missing input directory name" . PHP_EOL;
exit(
1);
}
$dir = $argv[$i];
break;
case
"-p":
$i++;
if (
$i >= $argc) {
echo
"Missing regular expression pattern" . PHP_EOL;
exit(
1);
}
$regex = $argv[$i];
break;
case
"-m":
$i++;
if (
$i >= $argc) {
echo
"Missing main file" . PHP_EOL;
exit(
1);
}
$main = $argv[$i];
break;
case
"-b":
$i++;
if (
$i >= $argc) {
echo
"Missing shebang of file" . PHP_EOL;
exit(
1);
}
$shebang = $argv[$i];
break;
case
"--no-chmod":
$chmod = false;
break;
}
}
if (
file_exists($filename)) unlink($filename);
$phar = new Phar($filename);
$phar->buildFromDirectory($dir, $regex);
$phar->setStub(($shebang ? $shebang . PHP_EOL : "") . $phar->createDefaultStub($main));
if (
$chmod) {
chmod($filename, fileperms($phar) | 0700);
}

<< Back to user notes page

To Top