Maison outils de développement composer optimisation du chargeur automatique du compositeur

optimisation du chargeur automatique du compositeur

Oct 29, 2019 pm 02:29 PM
composer

Ce qui suit est une colonne de tutoriel utilisant la commande composer pour vous présenter l'optimisation du chargeur automatique du compositeur. J'espère que cela sera utile aux amis dans le besoin !

optimisation du chargeur automatique du compositeur

Optimisation du chargeur automatique

Normalement, le chargeur automatique de Composer s'exécute relativement rapidement. Cependant, en raison des règles de chargement automatique de PSR-4 et PSR-0, le système de fichiers doit être vérifié avant d'analyser définitivement une classe. Cela entraînera une vitesse de chargement automatique assez lente, mais dans un environnement de développement, ce sera un moyen de chargement très pratique, car lorsque vous créez une nouvelle classe, le chargeur découvrira et utilisera immédiatement la classe sans que vous soyez requis pour reconstruire la configuration du chargeur automatique.

Les problèmes causés par ce type de règle de chargement se reflètent vraiment dans l'environnement de production, vous pouvez reconstruire la configuration très facilement avant chaque déploiement, et de nouvelles configurations n'apparaîtront pas aléatoirement entre les classes de déploiement. , vous n'en avez donc pas besoin pour vérifier le système de fichiers à tout moment, vous souhaitez généralement que le chargement automatique se termine le plus rapidement possible.

Pour les raisons ci-dessus, Composer propose des stratégies d'optimisation pour les chargeurs automatiques.

Remarque : vous ne devez utiliser aucune des stratégies d'optimisation décrites dans cet article dans un environnement de développement, car cela entraînerait divers problèmes lorsque vous ajouterez ou supprimerez des classes. En fait, le gain de performances résultant de l’application de ces paramètres dans un environnement de développement est largement compensé par les problèmes qu’ils entraînent.

Niveau d'optimisation 1 : Génération de cartes de classes

Comment l'exécuter ?

Il existe plusieurs options pour activer cette fonctionnalité :

Définissez "optimize-autoloader": true dans la configuration de composer.json

Utilisez -o / - -optimize-autoloader appelle l'installation ou la mise à jour

Utilisez -o / --optimize pour appeler dump-autoload

Que fait-il ?

La génération de cartes de classes convertit essentiellement les règles PSR-4/PSR-0 en règles de cartes de classes. Cela rend tout beaucoup plus rapide, puisqu'une carte de classe connue renvoie le chemin immédiatement et Composer peut garantir que la classe est là, donc aucune vérification du système de fichiers n'est nécessaire.

Dans PHP 5.6+, les classmaps sont également mis en cache dans opcache, ce qui améliore considérablement le temps d'initialisation. Si vous vous assurez qu'opcache est activé, la carte de classe devrait se charger immédiatement et les classes se chargeront rapidement.

Compromis

Il n'y a pas de véritables compromis avec cette approche. Il doit toujours être activé en production.

Le seul problème est qu'il ne suit pas le chargement automatique (c'est-à-dire lorsqu'il ne trouve pas une classe donnée), il est donc toujours possible que les règles qui reviennent à PSR-4 entraînent des vérifications du système de fichiers. Ralentissez . Pour résoudre ce problème, il existe deux options d'optimisation secondaires que vous pouvez décider d'activer si vous effectuez de nombreuses vérifications class_exists pour des classes qui n'existent pas dans votre projet.

Niveau d'optimisation 2/A : Mappage de classes faisant autorité

Comment l'activer ?

Il existe plusieurs options pour activer cette fonctionnalité :

Définissez "classmap-authoritative": true dans la clé de configuration de composer.json

Utilisez -a / --classmap-authoritative Appel pour installer ou mettre à jour

Utilisez -a / --classmap-authoritative pour appeler dump-autoload

Que fait-il ?

L'activation de cette option active automatiquement l'optimisation de la carte de classe de niveau 1.

Cette option est simple, elle dit que si quelque chose n'est pas trouvé dans le diagramme de classes, alors il n'existe pas et l'autochargeur ne doit pas essayer de regarder le système de fichiers selon les règles PSR-4.

Compromis

Cette option permet au chargeur automatique de toujours revenir rapidement. D'un autre côté, cela signifie également que si la classe est générée au moment de l'exécution pour une raison quelconque, le chargement automatique n'est pas autorisé. Si votre projet ou l'une de ses dépendances fait cela, vous risquez de rencontrer des problèmes de « classe introuvable » en production. Faites attention à l'activer.

Remarque : Ceci ne peut pas être utilisé en conjonction avec l'optimisation de niveau 2/B. Vous devez en choisir un car ils résolvent le même problème de différentes manières.

Niveau d'optimisation 2/B : Cache APCu

Comment l'activer ?

Il existe une option pour activer cette fonctionnalité :

Définissez "apcu-autoloader": true dans la clé de configuration de composer.json

Utilisez --apcu - l'autoloader appelle l'installation ou la mise à jour

Utilisez --apcu pour appeler dump-autoload

Que fait-il ?

Cette option ajoute le cache APCu comme solution de secours pour le mappage de classes. Il ne génère pas automatiquement les classmaps, vous devez donc toujours activer manuellement l'optimisation de niveau 1 si vous le souhaitez.

Que la classe soit trouvée ou non, ce fait est toujours mis en cache dans APCu afin qu'il puisse être renvoyé rapidement lors de la prochaine requête.

Compromis

Cette option nécessite APCu, qui peut ou non fonctionner pour vous. Il utilise également la mémoire APCu pour le chargement automatique, mais son utilisation est sûre et n'empêche pas la recherche des classes, comme l'optimisation de la carte de classe faisant autorité ci-dessus.

Remarque : Ceci ne peut pas être utilisé en conjonction avec l'optimisation de niveau 2/A. Vous devez en choisir un car ils résolvent le même problème de différentes manières.

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Fonctionnalités avancées de Composer : alias, scripts et résolution de conflits Fonctionnalités avancées de Composer : alias, scripts et résolution de conflits Jun 03, 2024 pm 12:37 PM

Composer fournit des fonctionnalités avancées, notamment : 1. Alias : définissez des noms pratiques pour les packages pour référence répétée ; 2. Scripts : exécutez des commandes personnalisées lors de l'installation/mise à jour de packages, utilisées pour créer des tables de base de données ou compiler des ressources ; 3. Résolution de conflits : utilisez des règles de priorité ; , les contraintes de satisfaction et les alias de package résolvent les différentes exigences de plusieurs packages pour la même version de dépendance afin d'éviter les conflits d'installation.

Développement et exploitation agiles de la conteneurisation de microservices PHP Développement et exploitation agiles de la conteneurisation de microservices PHP May 08, 2024 pm 02:21 PM

Réponse : Les microservices PHP sont déployés avec HelmCharts pour un développement agile et conteneurisés avec DockerContainer pour l'isolation et l'évolutivité. Description détaillée : utilisez HelmCharts pour déployer automatiquement des microservices PHP afin de réaliser un développement agile. Les images Docker permettent une itération rapide et un contrôle de version des microservices. Le standard DockerContainer isole les microservices et Kubernetes gère la disponibilité et l'évolutivité des conteneurs. Utilisez Prometheus et Grafana pour surveiller les performances et l'état des microservices, et créer des alarmes et des mécanismes de réparation automatiques.

Quelles sont les méthodes courantes pour convertir des tableaux en objets en PHP ? Quelles sont les méthodes courantes pour convertir des tableaux en objets en PHP ? Apr 28, 2024 pm 10:54 PM

Comment convertir un tableau PHP en objet : utilisez la classe stdClass, utilisez la fonction json_decode(), utilisez une bibliothèque tierce (telle que la classe ArrayObject, la bibliothèque Hydrator)

Contrôle de version et collaboration du code PHP Contrôle de version et collaboration du code PHP May 07, 2024 am 08:54 AM

Contrôle de version du code PHP : Il existe deux systèmes de contrôle de version (VCS) couramment utilisés dans le développement PHP : Git : VCS distribué, où les développeurs stockent localement des copies de la base de code pour faciliter la collaboration et le travail hors ligne. Subversion : VCS centralisé, la seule copie de la base de code est stockée sur un serveur central, offrant plus de contrôle. VCS aide les équipes à suivre les modifications, à collaborer et à revenir aux versions antérieures.

Le rôle de PHP CI/CD dans les projets DevOps Le rôle de PHP CI/CD dans les projets DevOps May 08, 2024 pm 09:09 PM

PHPCI/CD est une pratique clé dans les projets DevOps qui automatise les processus de création, de test et de déploiement, améliorant ainsi l'efficacité du développement et la qualité des logiciels. Un pipeline PHPCI/CD typique comprend les étapes suivantes : 1) Intégration continue : chaque fois que le code change, le code est automatiquement construit et testé. 2) Déploiement continu : accélérez la livraison en déployant automatiquement le code testé et intégré dans l'environnement de production. En mettant en œuvre le pipeline PHPCI/CD, vous pouvez augmenter l’efficacité du développement, améliorer la qualité des logiciels, réduire les délais de mise sur le marché et augmenter la fiabilité.

Technologie de visualisation de la structure des données PHP Technologie de visualisation de la structure des données PHP May 07, 2024 pm 06:06 PM

Il existe trois technologies principales pour visualiser les structures de données en PHP : Graphviz : un outil open source capable de créer des représentations graphiques telles que des graphiques, des graphiques acycliques dirigés et des arbres de décision. D3.js : bibliothèque JavaScript pour créer des visualisations interactives basées sur les données, générer du HTML et des données à partir de PHP, puis les visualiser côté client à l'aide de D3.js. ASCIIFlow : une bibliothèque pour créer une représentation textuelle de diagrammes de flux de données, adaptée à la visualisation de processus et d'algorithmes.

Comment utiliser le cache Redis dans la pagination des tableaux PHP ? Comment utiliser le cache Redis dans la pagination des tableaux PHP ? May 01, 2024 am 10:48 AM

L'utilisation du cache Redis peut considérablement optimiser les performances de la pagination du tableau PHP. Cela peut être réalisé en suivant les étapes suivantes : Installez le client Redis. Connectez-vous au serveur Redis. Créez des données de cache et stockez chaque page de données dans un hachage Redis avec la clé « page : {page_number} ». Récupérez les données du cache et évitez les opérations coûteuses sur les grandes baies.

Comment utiliser PHP CI/CD pour itérer rapidement ? Comment utiliser PHP CI/CD pour itérer rapidement ? May 08, 2024 pm 10:15 PM

Réponse : Utilisez PHPCI/CD pour réaliser une itération rapide, y compris la configuration de pipelines CI/CD, de tests automatisés et de processus de déploiement. Configurer un pipeline CI/CD : sélectionnez un outil CI/CD, configurez le référentiel de code et définissez le pipeline de build. Tests automatisés : rédigez des tests unitaires et d'intégration et utilisez des frameworks de test pour simplifier les tests. Cas pratique : Utilisation de TravisCI : Installez TravisCI, définissez le pipeline, activez le pipeline et visualisez les résultats. Mettez en œuvre la livraison continue : sélectionnez les outils de déploiement, définissez les pipelines de déploiement et automatisez le déploiement. Avantages : améliorez l’efficacité du développement, réduisez les erreurs et raccourcissez les délais de livraison.

See all articles