Користење на Phar архиви: Phar и PharData класа
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Користење на Phar архиви: Phar и PharData класа
Референца за `phar.using.object.php` со подобрена типографија и навигација.
Користење на Phar архиви: Phar и PharData класа
На за да работи за класата поддржува читање и манипулација на Phar архиви, како и итерација низ наследената функционалност на RecursiveDirectoryIterator класа. Со поддршка за ArrayAccess интерфејс, датотеките во Phar архива може да се пристапат како да се дел од асоцијативен низ.
На PharData класата го наследува за да работи за, и дозволува креирање и модифицирање на не-извршни (податочни) tar и zip архиви дури и ако
phar.readonly=1 во php.ini. Како такви,
PharData::setAlias() and PharData::setStub()
се и двете оневозможени бидејќи концептот на носии и приклучоци е единствен за извршни phar архиви.
Важно е да се напомене дека при креирање на Phar архива, целосната патека треба да се предаде на за да работи за конструкторот на објектот. Релативните патеки нема да успеат да се иницијализираат.
Претпоставувајќи дека $p е Phar објект иницијализиран на следниов начин:
<?php
$p = new Phar('/path/to/myphar.phar', 0, 'myphar.phar');
?>
Празен Phar архив ќе биде креиран на /path/to/myphar.phar, или ако /path/to/myphar.phar веќе постои, ќе биде повторно отворен. Буквалниот myphar.phar го демонстрира концептот на носии што може да се користи за повикување на /path/to/myphar.phar во URL-и како во:
<?php
// these two calls to file_get_contents() are equivalent if
// /path/to/myphar.phar has an explicit alias of "myphar.phar"
// in its manifest, or if the phar was initialized with the
// previous example's Phar object setup
$f = file_get_contents('phar:///path/to/myphar.phar/whatever.txt');
$f = file_get_contents('phar://myphar.phar/whatever.txt');
?>
Со новосоздадениот $p за да работи за објект, следново е можно:
-
$a = $p['file.php']креира PharFileInfo класа што се однесува на содржината наphar://myphar.phar/file.php -
$p['file.php'] = $vкреира нова датотека (phar://myphar.phar/file.php), или презапишува постоечка датотека воmyphar.phar.$vможе да биде или стринг или отворен покажувач на датотека, во кој случај целата содржина на датотеката ќе се користи за креирање на новата датотека. Забележете дека$p->addFromString('file.php', $v)е функционално еквивалентно на горенаведеното. Исто така е можно да се додаде содржината на датотека со$p->addFile('/path/to/file.php', 'file.php'). На крај, може да се креира празна директориум со$p->addEmptyDir('empty'). -
isset($p['file.php'])може да се користи за да се утврди далиphar://myphar.phar/file.phpпостои воmyphar.phar. -
unset($p['file.php'])erasesphar://myphar.phar/file.phpfrommyphar.phar.
Дополнително, за да работи за објектот е единствениот начин за пристап до метаподатоци специфични за Phar, преку = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, и единствениот начин за поставување или враќање на PHP лоадер стабот на Phar архивата преку ако било кој од параметрите е подолг од 400 бајти. and Phar::createDefaultStub(). Дополнително, компресијата за целата Phar архива одеднаш може да се манипулира само со користење на за да работи за class.
Целосната листа на за да работи за функционалност на објектот е документирана подолу.
На PharFileInfo класата го наследува SplFileInfo класа, и додава неколку методи за манипулирање со детали специфични за Phar на датотека содржана во Phar, како што е манипулирање со компресија и метаподатоци.