PHAR(1)

πŸ“¦
version 8.1.2 Β· 3 versions
, in ubuntu jammy

πŸ’– PHAR(1) β€” the phar / phar.phar glow-up guide πŸ’–

okay bestie, sit down, hydrate, because PHAR(1) is here and it's literally the Unix manual for the PHAR (PHP archive) command line tool. no cap, it's giving main character energy for your whole PHP app. πŸ¦‹


✨ NAME ✨

phar, phar.phar β€” the PHAR (PHP archive) command line tool πŸ’…


🌸 SYNOPSIS 🌸

phar <command> [options] ...

πŸŽ€ DESCRIPTION πŸŽ€

so the PHAR file format is a whole vibe: it lets you shove an entire PHP application into one single file called a "phar" (PHP Archive) so distribution and installation are, like, effortless. periodt.

with the phar command you can create, update or extract PHP archives. obsessed.

the commands are: add compress delete extract help help-list info list meta-del meta-get meta-set pack sign stub-get stub-set tree version πŸ‘‘


πŸ’« add command πŸ’«

Add entries to a PHAR package. too easy.

Required arguments

  • -f file β€” tells us which phar file we're working on.
  • ... β€” any number of input files and directories. if -i is in use then ONLY files matching that given regular expression get packed. and if -x is given then files matching that regular expression are NOT packed. iykyk.

Optional arguments

  • -a alias β€” gives the phar file a cute little alias name.
  • -c algo β€” compression algorithm (go peek at COMPRESSION).
  • -i regex β€” a regular expression for input files.
  • -l level β€” how many preceding subdirectories to strip from file entries.
  • -x regex β€” regular expression for input files to exclude. bye felicia.

🧚 compress command 🧚

Compress or uncompress all files, or just one selected entry. glamour.

Required arguments

  • -c algo β€” compression algorithm (see COMPRESSION).
  • -f file β€” specifies the phar file to work on.

Optional arguments

  • -e entry β€” name of the entry to work on (it must include the PHAR internal directory name if there is any).

πŸ¦‹ delete command πŸ¦‹

Delete an entry from a PHAR archive. rip to that entry, respectfully.

Required arguments

  • -e entry β€” name of the entry to work on (must include PHAR internal directory name if any).
  • -f file β€” specifies the phar file to work on.

🌈 extract command 🌈

Extract a PHAR package to a directory. unboxing video but make it CLI.

Required arguments

  • -f file β€” specifies the phar file to work on.

Optional arguments

  • -i regex β€” a regular expression for input files.
  • -x regex β€” regular expression for input files to exclude.
  • ... β€” the directory to extract to (defaults to '.').

πŸ“ help command πŸ“

This help, or help for a selected command. bestie behavior honestly.

Optional arguments

  • ... β€” an optional command to retrieve help for.

⭐ help-list command ⭐

Lists the available commands. that's it, that's the whole thing. iconic.


πŸ’œ info command πŸ’œ

Get information about a PHAR package. πŸ“‹

by using -k it's possible to return a single value. so specific.

Required arguments

  • -f file β€” specifies the phar file to work on.

Optional arguments

  • -k index β€” subscription index to work on.

🌸 list command 🌸

List the contents of a PHAR archive. show us what you're made of bestie.

Required arguments

  • -f file β€” specifies the phar file to work on.

Optional arguments

  • -i regex β€” a regular expression for input files.
  • -x regex β€” regular expression for input files to exclude.

πŸ’€ meta-del command πŸ’€

Delete the meta information of a PHAR entry or a whole PHAR package.

if -k is given then the metadata is expected to be an array and the given index is what's being deleted. yes queen, surgical.

if something was deleted the return value is 0, otherwise it is 1.

Required arguments

  • -f file β€” specifies the phar file to work on.

Optional arguments

  • -e entry β€” name of the entry to work on (must include PHAR internal directory name if any).
  • -k index β€” subscription index to work on.

πŸ”₯ meta-get command πŸ”₯

Get the meta information of a PHAR entry or a PHAR package, in serialized form. if no output file is specified for the meta data then stdout is being used. you can also specify a particular index using -k β€” in that case the metadata is expected to be an array and the value of the given index is returned using echo rather than using serialize. and if that index doesn't exist, or literally no meta data is present, then the return value is 1. 😭

Required arguments

  • -f file β€” specifies the phar file to work on.

Optional arguments

  • -e entry β€” name of the entry to work on (must include PHAR internal directory name if any).
  • -k index β€” subscription index to work on.

✨ meta-set command ✨

Set the meta data of a PHAR entry or a PHAR package using serialized input. if no input file is specified for the meta data then stdin is being used. you can also specify a particular index using -k β€” in that case the metadata is expected to be an array and the value of that given index is what gets set. if the metadata isn't present or is empty, a new array gets created. but if the metadata is present and is a flat value, then the return value is 1. also, when you use -k, the input is taken directly rather than being serialized. okayyy.

Required arguments

  • -f file β€” specifies the phar file to work on.
  • -m meta β€” meta data to store with the entry (serialized php data).

Optional arguments

  • -e entry β€” name of the entry to work on (must include PHAR internal directory name if any).
  • -k index β€” subscription index to work on.

πŸ‘‘ pack command πŸ‘‘

Pack files into a PHAR archive. the whole point tbh.

when using -s <stub>, then the stub file is being excluded from the list of input files/dirs. and to create an archive that contains the PEAR class PHP_Archive, then point the -p argument to PHP/Archive.php. noted. πŸ“

Required arguments

  • -f file β€” specifies the phar file to work on.
  • ... β€” any number of input files and directories. if -i is in use then ONLY files matching the given regular expression are being packed. if -x is given then files matching that regular expression are NOT being packed.

Optional arguments

  • -a alias β€” provide an alias name for the phar file.
  • -b bang β€” hash-bang line to start the archive (e.g. #!/usr/bin/php). the hash mark itself '#!' and the newline character are optional.
  • -c algo β€” compression algorithm (see COMPRESSION).
  • -h hash β€” selects the hash algorithm (see HASH).
  • -i regex β€” specifies a regular expression for input files.
  • -l level β€” number of preceding subdirectories to strip from file entries.
  • -p loader β€” location of the PHP_Archive class file (pear list-files PHP_Archive). you can use '0' or '1' to locate it automatically using the mentioned pear command. when using '0' the command does not error out when the class file cannot be located. this switch also adds some code around the stub so that class PHP_Archive gets registered as a phar:// stream wrapper if necessary. and finally this switch will add the file phar.inc from this package and load it to ensure class Phar is present. multipurpose fr fr.
  • -s stub β€” select the stub file.
  • -x regex β€” regular expression for input files to exclude.
  • -y key β€” private key for OpenSSL signing. πŸ”

πŸ”’ sign command πŸ”’

Set the signature hash algorithm. secure the bag.

Required arguments

  • -f file β€” specifies the phar file to work on.
  • -h hash β€” selects the hash algorithm (see HASH).

Optional arguments

  • -y key β€” private key for OpenSSL signing.

πŸŽ€ stub-get command πŸŽ€

Get the stub of a PHAR file. if no output file is specified as stub then stdout is being used.

Required arguments

  • -f file β€” specifies the phar file to work on.

Optional arguments

  • -s stub β€” select the stub file.

🌟 stub-set command 🌟

Set the stub of a PHAR file. if no input file is specified as stub then stdin is being used.

Required arguments

  • -f file β€” specifies the phar file to work on.

Optional arguments

  • -b bang β€” hash-bang line to start the archive (e.g. #!/usr/bin/php). the hash mark itself '#!' and the newline character are optional.
  • -p loader β€” location of the PHP_Archive class file (pear list-files PHP_Archive). you can use '0' or '1' to locate it automatically using the mentioned pear command. when using '0' the command does not error out when the class file cannot be located. this switch also adds some code around the stub so that class PHP_Archive gets registered as a phar:// stream wrapper if necessary. and finally this switch will add the file phar.inc from this package and load it to ensure class Phar is present.
  • -s stub β€” select the stub file.

🧚 tree command 🧚

Get a directory tree for a PHAR archive. 🌳 aesthetic.

Required arguments

  • -f file β€” specifies the phar file to work on.

Optional arguments

  • -i regex β€” specifies a regular expression for input files.
  • -x regex β€” regular expression for input files to exclude.

πŸ“¦ version command πŸ“¦

Get information about the PHAR environment and the tool version. who are you, where did you come from. 🫢


πŸ—œοΈ COMPRESSION πŸ—œοΈ

Algorithms, bestie:

  • 0 β€” No compression
  • none β€” No compression
  • auto β€” Automatically select compression algorithm
  • gz β€” GZip compression
  • gzip β€” GZip compression
  • bz2 β€” BZip2 compression
  • bzip2 β€” BZip2 compression

πŸ” HASH πŸ”

Algorithms, again:

  • md5 β€” MD5
  • sha1 β€” SHA1
  • sha256 β€” SHA256
  • sha512 β€” SHA512
  • openssl β€” OpenSSL using SHA-1
  • openssl_sha256 β€” OpenSSL using SHA-256
  • openssl_sha512 β€” OpenSSL using SHA-512

πŸ‘€ SEE ALSO πŸ‘€

for a more or less complete description of PHAR, look here: http://php.net/phar ✨


πŸ› BUGS πŸ›

you can view the list of known bugs, or report any new bug you found, at: http://bugs.php.net β€” they do want to hear from you ngl.


πŸ’– AUTHORS πŸ’–

the PHP Group: Thies C. Arntzen, Stig Bakken, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski. legends, all of them. 🌟

work for the PHP archive was done by Gregory Beaver, Marcus Boerger.

a list of active developers can be found here: http://www.php.net/credits.php

and last but not least, PHP was developed with the help of a huge amount of contributors all around the world. global slay. 🌍


🫢 VERSION INFORMATION 🫢

this manpage describes phar, version 8.1.2-1ubuntu2.28.


Copyright Β© The PHP Group

this source file is subject to version 3.01 of the PHP license, that is bundled with this package in the file LICENSE, and is available through the world-wide-web at the following url: https://www.php.net/license/3_01.txt

if you did not receive a copy of the PHP license and are unable to obtain it through the world-wide-web, please send a note to license@php.net so we can mail you a copy immediately. no gatekeeping here. πŸ’Œ


okay and that's the whole thing!! shipped by The PHP Group, dated 2021, and it's literally PHAR(1) β€” go make some archives bestie, you're gonna ate πŸ’…βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from