рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЛ PHP 5.2 рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдирд╡рд╛рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рд╕рдВрд╕реНрдХрд░рдг 5.3 рд╕реЗ рдпрд╣ рдорд╛рдирдХ PHP рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ) - PHARред

PHAR PHP рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ, рдЬрд╛рд╡рд╛ рдореЗрдВ JAR рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧред
PHAR рдЖрдкрдХреЛ рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдореЗрдВ рдкреИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреВрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
PHAR TAR, ZIP рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ PHAR рдЬреИрд╕реЗ рдкреНрд░рд╛рд░реВрдк рдмрдирд╛, рдкрдврд╝, рд▓рд┐рдЦ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХреНрд╕реЗрд╕ рд╕реАрдзреЗ рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, PHP рд╕реНрдЯреНрд░реАрдо рд░реИрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЕрд░реНрдерд╛рдд, рд╡реЗ рд╕рднреА рдХрд╛рд░реНрдп рдЬреЛ PHP рд╕реНрдЯреНрд░реАрдо рд▓рд┐рдкрд┐рдХ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ
PHAR рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ PHAR, zlib рдФрд░ bzip2 рдПрдХреНрд╕рдЯреЗрдВрд╢рди (рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ PHP 5.3 рд╣реИ, рддреЛ PHAR рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ) рдХреЗ рд╕рд╛рде PHP 5.2 рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИред
рд╕реБрд░рдХреНрд╖рд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, PHAR рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдореЗрдВ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдБрдЪ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЖрдк php.ini рдореЗрдВ phar.readonly = 0 рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, PHAR рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЗрд╡рд▓ PHP рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг
рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рдПрдБ:
$phar = new Phar('test.phar'); $phar[hello_habr.txt] = 'Hello Habr!';
рдЕрдм рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдкрдврд╝реЗрдВ:
echo file_get_contents('phar://test.phar/hello_habr.txt');
рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓
рдПрдХ "рд╕реНрдЯрдм" рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм PHAR рд╕рдВрдЧреНрд░рд╣ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ; рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗрд╡рд▓ рддрднреА рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рдкреБрд░рд╛рд▓реЗрдЦ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реЛред рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рддреЛ рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:
рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп, рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ __HALT_COMPILER () рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХреНрд╕реЗрд╕ рдЧреЗрдЯрд╕реНрдЯрдм () рд╡рд┐рдзрд┐ рд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
$phar = new Phar('some_archive.phar'); $stub = $phar->getStub();
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, setDefaultStub () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
$phar = new Phar('some_archive.phar'); $phar->setDefaultStub('cli.php', 'web/index.php');
рд╕рдВрдЧреНрд░рд╣ рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рдирд╛
рдорд╣рддреНрд╡рдкреВрд░реНрдг: php.ini рдореЗрдВ phar.readonly = 0 рд╕реЗрдЯ рдХрд░реЗрдВрд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦрдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:
- рдПрдХ рд╡рд╕реНрддреБ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
- рдлрд╝рд╛рд░ :: addFile ()
- рдлрд╝рд╛рд░ :: addFromString ()
- рдлрд╝рд╛рд░ :: addEmptyDir ()
- рдлрд╝рд╛рд░ :: buildFromDirectory ()
- рдлрд╝рд╛рд░ :: buildFromIterator ()
рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг:
$phar = new Phar('habr.phar'); $phar['index.php'] = file_get_contents('some/path/to/file.php');
$phar = new Phar('habr.phar'); $phar->addFile('http://habrahabr.ru', 'HabrHomePage.html'); $phar->addFromString('HabrHomePage', file_get_contents('http://habrahabr.ru')); $phar = new Phar('habr.phar'); $phar->addEmptyDir('temporary/'); $phar->buildFromDirectory('some_directory/');
$phar = new Phar('habr'); $dir = 'somedir/'; $phar->buildFromIterator( new RecursiveDirectoryIterator($dir) );
рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдкрдврд╝рдирд╛
рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:
- PHAR рд╕реНрдЯреНрд░реАрдо рд░реИрдкрд░ (рдЪрд░рдг: //)
- рд╕реАрдзрд╛ рд╕рдВрдмрдВрдз
- Phar :: extractTo ()
- 'рдлрд╝рд╛рд░' рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдХрдерди
PHAR рд╕рдВрдЧреНрд░рд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
PHAR рдЪрд╛рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреАрдврд╝реА рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд░рдг :: setSignatureAl рдПрд▓реНрдЧреЛрд░рд┐рджрдо () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ:
- рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдкреНрд░рдХрд╛рд░:
- рдЪрд░рдг :: рдПрдордбреА 5
- рдЪрд░рдг :: SHA1
- рдЪрд░рдг :: SHA256
- рдЪрд░рдг :: SHA512
- рдЪрд░рдг :: OPENSSL
- рдирд┐рдЬреА рдХреБрдВрдЬреА - рдпрд╛рдиреА рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдирд┐рдЬреА рдХреБрдВрдЬреА
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг:
$phar=new Phar('habr.phar'); $phar->buildFromDirectory('habr/'); $signatures=Phar::getSupportedSignatures(); if (in_array(PHAR::SHA512,$signatures)) { $phar->setSignatureAlgorithm(PHAR::SHA512); } elseif (in_array(PHAR::SHA256,$signatures)) { $phar->setSignatureAlgorithm(PHAR::SHA256); } elseif (in_array(PHAR::SHA1,$signatures)) { $phar->setSignatureAlgorithm(PHAR::SHA1); } elseif (in_array(PHAR::MD5,$signatures)) { $phar->setSignatureAlgorithm(PHAR::MD5); }
рдФрд░ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд▓рд┐рдП:
$phar=new Phar('habr.phar'); $phar->buildFromDirectory('habr/'); $OSSLPrivateKey=openssl_get_privatekey(file_get_contents('private.pem')); $OSSLPKey=''; openssl_pkey_export($OSSLPrivateKey,$OSSLPKey); $phar->setSignatureAlgorithm(Phar::OPENSSL,$OSSLPKey);
рдЬрд┐рдк рдФрд░ рдЯреАрдПрдЖрд░
PHAR рдЬрд╝рд┐рдк рдФрд░ TAR рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдкрдврд╝рдирд╛ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдорд╛рдиреЛ рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд PHAR рд╕рдВрдЧреНрд░рд╣ рд╣реЛред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдирд╛рдо рдХреА рд▓рдВрдмрд╛рдИ 255 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рдпрд╣ рднреА рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдирд╛рдо рдореЗрдВ '.phar' рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, habrред Pharред GZ)
рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЛ рджреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХреБрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: gzip рдпрд╛ bzip2ред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ php.ini рдореЗрдВ phar.readonly = 1 рд╣реЛрдиреЗ рдкрд░ рднреА рдЬрд╝рд┐рдк рдФрд░ TAR рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдирдХреЗ рдкрд╛рд╕ рдирд╛рдо рдореЗрдВ рдХреЛрдИ рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓ рдпрд╛ '.phar' рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдкреБрд░рд╛рд▓реЗрдЦ рдкреНрд░рд╛рд░реВрдк рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ
рдкреБрд░рд╛рд▓реЗрдЦ рд░реВрдкрд╛рдВрддрд░рдг рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
1. рдЪрд░рдг :: ConvertToData (), рдЬреЛ рддреАрди рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ: рд╕реНрд╡рд░реВрдк (Phar :: TAR, Phar :: ZIP), рдХрдореНрдкреНрд░реЗрд╢рди (Phar :: NONE, Phar :: GZ, Phar :: BZ2) рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди (.tar)ред .tar.bz2, .tar.gz, .zip)ред
2. рдЪрд░рдг :: ConvertToExecutable (), рдЬреЛ рдЕрдВрддрд┐рдо-рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╕рдорд╛рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдХрдИ рдФрд░ рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдЬреЛ рдлрд┐рд░ рднреА PHAR, ZIP рдпрд╛ TAR рд╕реНрд╡рд░реВрдкреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ: рдХреНрд░рдорд╢рдГ .phar, .phar.gz, .phar.bz2, .phar.tar, .phar.tar.gz, .phar.tar.bz2ред , .phar.zip
рджрдмрд╛рд╡
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ, рджреЛ рд╕рдВрдкреАрдбрд╝рди рд╡рд┐рдзрд┐рдпрд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ: Gzip рдФрд░ Bzip2, рдЬрдмрдХрд┐ рдЖрдк рд╕рдВрдЧреНрд░рд╣ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реЗрдХ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓реЗрддреА рд╣реИ - рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди:
$phar=new Phar('habr.phar'); $phar->buildFromDirectory('habr/'); if (Phar::canCompress(Phar::GZ)) { $phar->compress(Phar::GZ,'.phar.gz'); } else if (Phar::canCompress(Phar::BZ2)) { $phar->compress(Phar::BZ2,'.phar.bz2'); }
рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд▓рд┐рдП - рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде compressFiles () - рд╕рдВрдкреАрдбрд╝рди рдкреНрд░рдХрд╛рд░:
$phar=new Phar('habr.phar'); $phar->buildFromDirectory('habr/'); if (Phar::canCompress(Phar::GZ)) { $phar->compressFiles(Phar::GZ); } else if (Phar::canCompress(Phar::BZ2)) { $phar->compressFiles(Phar::BZ2); }
рдЙрддреНрдкрд╛рджрдХрддрд╛
рдПрдкреАрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, PHAR рдкреНрд░рджрд░реНрд╢рди 6 рдЧреБрдирд╛ рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ - рд▓рдЧрднрдЧ PHAR рдХреЗ рд╕рдорд╛рди рд╣реАред
рдкрд░рд┐рдгрд╛рдо
рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
- PHAR рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдпрд╛ рдпреЛрдВ рдХрд╣реЗрдВ, рдпрд╣ рдорд╛рдирдХ PHP 5.3 рд╡рд┐рддрд░рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
- рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
- рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди - рд╕рд┐рд░реНрдл рдПрдХ рдлрд╝рд╛рдЗрд▓ред
- рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИ - рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ред
- рдЗрд╕рдореЗрдВ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╣реИред