Phar Introduktion
Introduktion
Phar-tillägget tillhandahåller ett sätt att samla hela PHP-applikationer i en enda fil, kallad en "phar" (PHP Archive), för enkel distribution och installation. Förutom att tillhandahålla denna tjänst, erbjuder phar-tillägget också en filformatsabstraktion för att skapa och hantera tar- och zip-filer via klassen PharData, likt hur PDO ger ett enhetligt gränssnitt för att komma åt olika databaser. Till skillnad från PDO, som inte kan konvertera mellan olika databaser, kan Phar konvertera mellan tar-, zip- och phar-filformat med en enda kodrad. Se Phar::convertToExecutable() för ett exempel.
Vad är en phar?
Phar-arkiv kännetecknas bäst som ett bekvämt sätt att gruppera flera filer i en enda fil. Ett phar-arkiv gör det möjligt att distribuera en komplett PHP-applikation i en enda fil och köra den direkt från den filen utan att behöva packa upp den till disk. Dessutom kan phar-arkiv köras av PHP lika enkelt som vilken annan fil som helst, både från kommandoraden och från en webbserver. Phar är som ett USB-minne för PHP-applikationer.
Phar implementerar denna funktionalitet genom en Stream Wrapper. Normalt, för att använda en extern fil i ett PHP-skript, skulle du använda include:
Exempel #1 Använda en extern fil
<?php include '/path/to/external/file.php'; ?>
PHP kan faktiskt ses som att översätta `/path/to/external/file.php` till en stream wrapper som `file:///path/to/external/file.php`. För att använda en fil som `file.php` som finns i ett phar-arkiv `/path/to/myphar.phar`, är syntaxen mycket lik `file://`-syntaxen ovan.
Exempel #2 Använda en fil inom ett phar-arkiv
<?php include 'phar:///path/to/myphar.phar/file.php'; ?>
Man kan behandla ett phar-arkiv precis som om det vore en extern disk, genom att använda funktioner som `fopen()`, `opendir()` och `mkdir()` för att läsa, ändra eller skapa nya filer och kataloger inom phar-arkivet. Detta möjliggör distribution av kompletta PHP-applikationer i en enda fil som kan köras direkt från den filen.
Vanlig användning
Den vanligaste användningen av ett phar-arkiv är att distribuera en komplett applikation i en enda fil. Exempelvis distribueras PEAR Installationsverktyget som medföljer PHP-versioner som ett phar-arkiv. Ett phar-arkiv kan köras antingen från kommandoraden eller via en webbserver.
Phar-arkiv kan distribueras som tar-arkiv, zip-arkiv eller som det specialutformade phar-filformatet. Varje filformat har sina för- och nackdelar. Tar- och zip-format kan läsas eller extraheras av tredjepartsverktyg, men kräver phar-tillägget för att köras med PHP. Phar-formatet är anpassat och unikt för phar-tillägget, och kan endast skapas av phar-tillägget eller PEAR-paketet » PHP_Archive.
Exempel #3 Konvertera ett phar-arkiv från phar till tar-format
<?php $phar = new Phar('myphar.phar'); $pgz = $phar->convertToExecutable(Phar::TAR, Phar::GZ); // skapar myphar.phar.tar.gz ?>
Phar kan komprimera enskilda filer eller hela arkivet med gzip- eller bzip2-komprimering, och kan verifiera arkivens integritet automatiskt med hjälp av MD5, SHA-1, SHA-256 eller SHA-512-signaturer.
Phar-tillägget är också säkerhetsmedvetet och inaktiverar skrivåtkomst till körbara phar-arkiv som standard. Det kräver att phar.readonly i php.ini stängs av på systemnivå för att skapa eller modifiera phar-arkiv.
Om du skapar applikationer för distribution bör du läsa Hur man skapar Phar-arkiv. För mer information om skillnaderna mellan de tre filformat som phar stöder, läs Phar, Tar och Zip.
Notering om säkerhet
Trots att phar-tillägget är inaktiverat kan ett phar-baserat arkiv ändå köras eller inkluderas. Att komma åt enskilda filer inom ett phar-arkiv är endast möjligt med phar-tillägget om inte phar-arkivet skapades av PHP_Archive.
Ordet "phar" är en sammanslagning av "PHP" och "Archive" och är löst baserat på "jar" (Java Archive) som Java-utvecklare är bekanta med.
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/intro.phar.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.