Using Phar Archives: the Phar and PharData class

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Använda Phar-arkiv: klasserna Phar och PharData

Phar-klassen stödjer läsning och manipulation av Phar-arkiv samt iteration genom ärvd funktionalitet från RecursiveDirectoryIterator-klassen. Genom stöd för ArrayAccess-gränssnittet kan filer inuti ett Phar-arkiv nås som om de vore en del av en associativ array.

PharData-klassen är en utökning av Phar och tillåter skapande och modifiering av icke-körbara (data) tar- och zip-arkiv, även om `phar.readonly=1` är satt i php.ini. Därför är metoderna PharData::setAlias() och PharData::setStub() inaktiverade eftersom alias och stub är unika för körbara Phar-arkiv.

Viktigt att notera

När du skapar ett Phar-arkiv bör du använda en absolut sökväg i Phar-konstruktorn. Relativa sökvägar kommer inte att fungera.

Anta att variabeln $p är ett Phar-objekt som initialiseras enligt följande:

<?php
$p = new Phar('/path/to/myphar.phar', 0, 'myphar.phar');
?>

Ett tomt Phar-arkiv kommer att skapas på `/path/to/myphar.phar`, eller om filen redan finns kommer den att öppnas igen. Aliaset myphar.phar kan användas för att referera till `/path/to/myphar.phar` i URL:er, som i följande exempel:

<?php
// Dessa två anrop till file_get_contents() är likvärdiga om
// /path/to/myphar.phar har ett alias "myphar.phar"
$f = file_get_contents('phar:///path/to/myphar.phar/whatever.txt');
$f = file_get_contents('phar://myphar.phar/whatever.txt');
?>

Exempel på användning av det skapade Phar-objektet

  • $a = $p['file.php'] skapar en PharFileInfo-klass som refererar till innehållet i `phar://myphar.phar/file.php`.
  • $p['file.php'] = $v skapar en ny fil (eller skriver över en befintlig fil) i `myphar.phar`. Variabeln $v kan vara en sträng eller en öppen filpekare.
 - Exempel: $p->addFromString('file.php', $v) är funktionellt likvärdigt med ovanstående.
 - Det är också möjligt att lägga till innehållet i en fil med $p->addFile('/path/to/file.php', 'file.php').
 - Skapa en tom katalog med $p->addEmptyDir('empty').
  • isset($p['file.php']) kan användas för att kontrollera om filen finns i `myphar.phar`.
  • unset($p['file.php']) tar bort filen från arkivet.

Hantering av metadata och PHP-laddningsstub

Phar-objektet är det enda sättet att komma åt Phar-specifik metadata via Phar::getMetadata(), samt att sätta eller hämta PHP-laddningsstubbar genom Phar::getStub() och Phar::setStub(). Dessutom kan komprimering för hela Phar-arkivet bara hanteras med hjälp av Phar-klassen.

PharFileInfo-klassen

PharFileInfo är en utökning av SplFileInfo-klassen och erbjuder flera metoder för att hantera Phar-specifika detaljer, såsom komprimering och metadata.


Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/phar.using.object.php
PHP Funktioner Funktionsreferens Komprimerings- och arkivtillägg


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp Stockholm som har sponsrat Linux.se med webbhotell.