Yaconf est une extension de gestion de configuration hautes performances. Il s'agit d'une application d'extension sous PHP7 publiée par le développeur principal PHP Niao Ge Hui Xinchen. L'objectif principal est de simplifier la lecture du fichier de configuration du projet, de séparer le fichier de configuration du code du projet et d'améliorer la lisibilité et la maintenabilité du fichier de configuration.
Selon Hui Xinchen, développeur de Yaconf, sur son blog, ce projet est un petit outil qu'il a créé dans son premier projet d'optimisation après son arrivée sur Weibo. Cependant, parce que Weibo_Conf est une extension de. Weibo contient d'autres fonctions spécialement personnalisées pour Weibo. Par conséquent, il n'est pas adapté à l'open source direct. Avec la sortie de PHP7, de nombreux nouveaux types de persistance ont été pris en charge, tels que IS_IMMUTABLE_ARRAY, il est donc sous PHP7. Yaconf a été redéveloppé et rendu open source pour que tout le monde puisse l'utiliser.
J'ai vu de nombreux projets qui utilisent des fichiers PHP pour la configuration. Il peut y avoir dix fichiers dans un répertoire de configuration. . Plusieurs voire des dizaines de fichiers de configuration .php contiennent divers tableaux, et même certains fichiers de dictionnaire (comme la comparaison chinois/anglais) sont également placés dans la configuration, ce qui conduit à une confusion des fichiers de configuration. certes, utiliser opcache peut être meilleur, mais en fait il y a toujours un processus d'exécution).
En plus de PHP, il existe également json et yaml , une caractéristique commune est que le. la lisibilité de ces configurations est relativement mauvaise. De plus, elles nécessitent également une analyse d'exécution
les répertoires de configuration sont souvent accompagnés du code, ce qui crée d'abord des risques de sécurité (il contient souvent des informations sensibles). la configuration). Deuxièmement, si la configuration et le code appartiennent au même projet, cela entraînera que la modification de la configuration passe également par le processus de code en ligne
Certaines configurations de ressources. Les informations de configuration de mysql/memcache doivent être transparentes pour le développement, et l'exploitation et la maintenance doivent en être directement responsables. Cependant, si elles sont insérées dans le code, si l'exploitation et la maintenance souhaitent initier certains changements, le développement et la coopération doivent être effectués. être modifié pour modifier le fichier de configuration et aller en ligne
Il utilise un. répertoire de configuration séparé (dans yaconf.directory spécifié), pas avec le code
Il gère toutes les configurations à traiter au démarrage de PHP, et ces configurations résideront ensuite en mémoire, et durera toute la vie de PHP La vie et la mort en cycles. Cela évite d'analyser le fichier de configuration à chaque fois qu'une demande est faite
Tous les contenus de configuration sont immuables, ce qui peut réduire l'utilisation de la mémoire. avec l'aide de Fork's COW, et lors de l'accès à la configuration, il n'y a presque pas besoin de copie de mémoire, et il n'y aura pas d'augmentation ou de diminution inutile du nombre de références
La chose la plus importante est qu'une fois le répertoire de configuration et le code séparés, vous pouvez utiliser un arrière-plan de gestion de configuration pour obtenir une gestion unifiée de la configuration.
Il prend en charge (par non-ZTS) rechargement des modifications de configuration, c'est-à-dire que si la configuration change (recommandé Assurez-vous d'utiliser mv pour modifier la configuration, n'utilisez pas cp), elle se rechargera et n'aura pas besoin d'être redémarrée (la fréquence de détection est contrôlé par yaconf.check_delay).
Il prend en charge une variété de types de configuration, y compris 字符串, 数组, 分节, 分节继承
, et vous pouvez également écrire directement des constantes PHP et des variables d'environnement dans la configuration
Le plus important c'est que ce soit simple.
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!