Maison  >  Article  >  développement back-end  >  Le package Phar de PHP s'avère si puissant

Le package Phar de PHP s'avère si puissant

藏色散人
藏色散人avant
2019-11-21 14:33:492852parcourir

J'ai vu des gens dire dans le groupe que certains frameworks Swoole sont lents à démarrer, surtout lorsqu'ils sont exécutés sur un disque dur réseau monté.

Je pense que parce que Swoole peut faire résider les applications PHP en mémoire, de nombreux fichiers doivent être analysés et chargés au démarrage. Cela devrait être la cause de la vitesse de démarrage lente.

En pensant à php et au package phar, j'ai essayé d'utiliser phar pour résoudre ce problème. Le travail acharné a porté ses fruits et j'ai finalement implémenté la compatibilité du packaging Phar et la prise en charge du framework imi. Les résultats des tests montrent :

Utilisez Phar pour énumérer, lire et inclure des fichiers, que ce soit sur un disque dur local ou sur. un réseau tel que Samba Les performances de montage du partage de fichiers sont supérieures à celles des fichiers dispersés.

phar est puissant et peut être utilisé pour déployer des projets directement avec un package. Cependant, dans le développement d'applications PHP traditionnelles, phar n'est en fait pas populaire car il ne présente pas de nombreux avantages. Dans l'environnement Swoole, de plus en plus de frameworks prennent en charge la mémoire résidente, qui permet de charger les fichiers que vous souhaitez utiliser au démarrage.

phar dispose d'un support intégré depuis PHP 5.3.0, vous n'avez donc pas besoin de vous soucier de la compatibilité ou d'installer des extensions supplémentaires.

J'ai spécialement écrit une démo pour tester les performances d'énumération et de lecture des fichiers Phar et inclure :

https://gitee.com/yurunsoft/PharTest

Les amis intéressés peuvent la télécharger et l'exécuter vous-même.

Pour activer la fonction de packaging de fichiers Phar, vous devez d'abord configurer phar.readonly = Off dans php.ini

Le code de packaging Phar est principalement le suivant :

<?php
$fileName = __DIR__ . &#39;/test/test.phar&#39;;
if(is_file($fileName))
{
    unlink($fileName);
}
$phar = new Phar($fileName);
$phar->stopBuffering();
$phar->buildFromDirectory(__DIR__ . &#39;/src&#39;);

Le la situation réelle de l'application est complexe, vous pouvez vous référer à la documentation officielle PHP et apporter de légères modifications en fonction de la situation réelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer