Phar::webPhar
(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)
Phar::webPhar — mapPhar pour les phars orientés web. Contrôleur pour les applications web
Description
$alias
[, string $index
= "index.php"
[, string $f404
[, array $mimetypes
[, callable $rewrites
]]]]] ) : voidPhar::mapPhar() pour les phars orientés web. Cette méthode parse $_SERVER['REQUEST_URI'] et route les requêtes d'un navigateur vers un fichier interne à l'archive. Dans le principe, cela simule un serveur web, en routant des requêtes vers le bon fichier, en envoyant les bons en-têtes et analysant le fichier PHP comme il convient. Cette méthode puissante permet de convertir facilement des applications PHP en archive phar. Combinée avec Phar::mungServer() et Phar::interceptFileFuncs(), n'importe quelle application web peut être utilisée sans changement à partir de l'archive phar.
Phar::webPhar() doit être appelé uniquement à partir du conteneur de chargement d'une archive phar (lisez ceci pour en savoir davantage sur les conteneurs).
Liste de paramètres
-
alias
-
L'alias qui peut être utilisé dans l'URL phar:// pour se référer à l'archive, plutôt que son chemin complet.
-
index
-
L'emplacement au sein de l'archive de l'index de répertoire.
-
f404
-
L'emplacement du script à exécuter quand un fichier n'est pas trouvé. Ce script doit envoyer des en-têtes HTTP 404 corrects.
-
mimetypes
-
Un tableau faisant correspondre des extensions de fichier supplémentaires à des types MIME. Si les correspondances par défaut suffisent, passez un tableau vide. Par défaut, ces correspondances sont les suivantes :
<?php
$mimes = array(
'phps' => Phar::PHPS, // passage vers highlight_file()
'c' => 'text/plain',
'cc' => 'text/plain',
'cpp' => 'text/plain',
'c++' => 'text/plain',
'dtd' => 'text/plain',
'h' => 'text/plain',
'log' => 'text/plain',
'rng' => 'text/plain',
'txt' => 'text/plain',
'xsd' => 'text/plain',
'php' => Phar::PHP, // parse en tant que PHP
'inc' => Phar::PHP, // parse en tant que PHP
'avi' => 'video/avi',
'bmp' => 'image/bmp',
'css' => 'text/css',
'gif' => 'image/gif',
'htm' => 'text/html',
'html' => 'text/html',
'htmls' => 'text/html',
'ico' => 'image/x-ico',
'jpe' => 'image/jpeg',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'js' => 'application/x-javascript',
'midi' => 'audio/midi',
'mid' => 'audio/midi',
'mod' => 'audio/mod',
'mov' => 'movie/quicktime',
'mp3' => 'audio/mp3',
'mpg' => 'video/mpeg',
'mpeg' => 'video/mpeg',
'pdf' => 'application/pdf',
'png' => 'image/png',
'swf' => 'application/shockwave-flash',
'tif' => 'image/tiff',
'tiff' => 'image/tiff',
'wav' => 'audio/wav',
'xbm' => 'image/xbm',
'xml' => 'text/xml',
);
?> -
rewrites
-
La fonction de ré-écriture est passée prend comme seul paramètre une chaîne et doit retourner une chaîne de caractères ou
FALSE
.Si vous utilisez fast-cgi ou cgi, le paramètre passé à la fonction est la valeur de la variable $_SERVER['PATH_INFO']. Sinon, le paramètre passé à la fonction est la valeur de la variable $_SERVER['REQUEST_URI'].
Si une chaîne est retournée, elle sera utilisée dans le chemin interne du fichier. Si
FALSE
est retourné, alors webPhar() enverra un code HTTP 403.
Erreurs / Exceptions
Lève une exception PharException quand le fichier interne ne peut pas être
ouvert ou si l'appel est fait en dehors d'un conteneur. Si une valeur de tableau non valide est passée dans
mimetypes
ou si une fonction de rappel invalide est passée au paramètre
rewrites
, alors une exception UnexpectedValueException
est levée.
Exemples
Exemple #1 Exemple avec Phar::webPhar()
Dans l'exemple ci-dessous, le phar créé affichera Salut tout le monde si quelqu'un appelle /monphar.phar/index.php ou /monphar.phar, et affichera la source de index.phps si /monphar.phar/index.phps est appelé.
<?php
// l'archive phar est créée :
try {
$phar = new Phar('monphar.phar');
$phar['index.php'] = '<?php echo "Salut tout le monde"; ?>';
$phar['index.phps'] = '<?php echo "Salut tout le monde"; ?>';
$phar->setStub('<?php
Phar::webPhar();
__HALT_COMPILER(); ?>');
} catch (Exception $e) {
// on traite les erreurs ici
}
?>
Voir aussi
- Phar::mungServer() - Définit une liste de maximum 4 variables $_SERVER qui doivent être modifiées lors de l'exécution
- Phar::interceptFileFuncs() - Informe phar qu'il doit intercepter les fonctions de fichiers
Version en cache
25/11/2024 05:06:57 Cette version de la page est en cache (à la date du 25/11/2024 05:06:57) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-phar.webphar.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.