Maison  >  Article  >  outils de développement  >  5 conseils de composition que les développeurs PHP devraient connaître

5 conseils de composition que les développeurs PHP devraient connaître

藏色散人
藏色散人avant
2019-12-21 16:56:152266parcourir

Composer est une nouvelle génération d'outil de gestion des dépendances PHP. Cet article présente cinq conseils pour utiliser Composer, dans l’espoir d’apporter plus de commodité à votre développement PHP.

5 conseils de composition que les développeurs PHP devraient connaître

1. Ne mettez à jour qu'une seule bibliothèque

Vous souhaitez uniquement mettre à jour une bibliothèque spécifique et ne souhaitez pas mettre à jour toutes ses dépendances.

composer update foo/bar

De plus, cette astuce peut également être utilisée pour résoudre le "problème de message d'avertissement". Vous avez dû voir des messages d'avertissement comme celui-ci :

Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them.

Qu'est-ce qui ne va pas ? Ne pas paniquer! Si vous modifiez composer.json, vous devriez voir quelque chose comme ceci. Par exemple, si vous ajoutez ou mettez à jour des détails tels qu'une description de bibliothèque, un auteur, plus de paramètres ou même simplement un espace, cela modifiera la somme md5 du fichier. Composer vous avertira alors que la valeur de hachage est différente de celle enregistrée dans composer.lock.

Alors que devons-nous faire ? La commande update peut mettre à jour le fichier de verrouillage, mais si elle ajoute uniquement quelques descriptions, elle ne doit mettre à jour aucune bibliothèque. Dans ce cas, ne mettez rien à jour :

$ composer update nothing
Loading composer repositories with package information
Updating dependencies
Nothing to install or update
Writing lock file
Generating autoload files

De cette façon, Composer ne mettra pas à jour la bibliothèque, mais il mettra à jour composer.lock. Notez que Nothing n'est pas un mot-clé dans la commande update. Ce package ne provoque tout simplement rien. Si vous tapez foobar, le résultat est le même.

Si la version de Composer que vous utilisez est suffisamment récente, vous pouvez utiliser directement l'option --lock :

composer update --lock

2 Installez la bibliothèque sans éditer composer.json

. Vous trouverez peut-être trop difficile de modifier composer.json à chaque fois que vous installez une bibliothèque, afin de pouvoir utiliser directement la commande require.

composer require "foo/bar:1.0.0"

Cette méthode peut également être utilisée pour ouvrir rapidement un nouveau projet. La commande init a l'option --require, qui peut écrire automatiquement composer.json : (notez que nous utilisons -n pour ne pas avoir à répondre à la question)

$ composer init --require=foo/bar:1.0.0 -n
$ cat composer.json
{
    "require": {
        "foo/bar": "1.0.0"
    }
}

3. 🎜>

Lors de l'initialisation, avez-vous essayé la commande create-project ?

composer create-project doctrine/orm path 2.2.0

Cela clonera automatiquement le référentiel et extraira la version spécifiée. Cette commande est très pratique à utiliser lors du clonage d’une bibliothèque, car il n’est pas nécessaire de rechercher l’URI d’origine.

4. Pensez à la mise en cache, donnez la priorité aux packages dist

Composer de l'année écoulée archivera automatiquement le package dist que vous avez téléchargé. Par défaut, le package dist est utilisé pour les versions balisées, telles que "symfony/symfony": "v2.1.4", ou les caractères génériques ou plages de versions, "2.1.*" ou ">=2.2,<2.3- dev" (si vous utilisez stable comme stabilité minimale).

Le package dist peut également être utilisé pour des branches telles que dev-master qui vous permet de télécharger le package compressé d'une certaine référence git. Pour forcer l'utilisation d'une archive tar au lieu de cloner le code source, vous pouvez utiliser l'option --prefer-dist d'installation et de mise à jour.

Voici un exemple (j'ai utilisé l'option --profile pour afficher le temps d'exécution) :

$ composer init --require="twig/twig:1.*" -n --profile
Memory usage: 3.94MB (peak: 4.08MB), time: 0s
 
$ composer install --profile
Loading composer repositories with package information
Installing dependencies
  - Installing twig/twig (v1.12.2)
    Downloading: 100%
 
Writing lock file
Generating autoload files
Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s
 
$ rm -rf vendor
 
$ composer install --profile
Loading composer repositories with package information
Installing dependencies from lock file
  - Installing twig/twig (v1.12.2)
    Loading from cache
 
Generating autoload files
Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s

Ici, le package compressé de twig/twig:1.12.2 est enregistré dans ~/. composer /cache/files/twig/twig/1.12.2.0-v1.12.2.zip. Utilisez-le directement lors de la réinstallation du package.

5. Si vous souhaitez modifier, commencez par le code source

Lorsque vous devez modifier la bibliothèque, cloner le code source est plus pratique que de télécharger le package. Vous pouvez utiliser --prefer-source pour forcer la sélection du code source clone.

composer update symfony/yaml --prefer-source

Ensuite, vous pouvez modifier le fichier :

composer status -v
You have changes in the following dependencies:
/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:
    M Dumper.php

Lorsque vous essayez de mettre à jour une bibliothèque modifiée, Composer vous le rappellera et vous demandera s'il faut abandonner la modification :

$ composer update
Loading composer repositories with package information
Updating dependencies
  - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)
    The package has modified files:
    M Dumper.php
    Discard changes [y,n,v,s,?]?

Préparer pour l'environnement de production

Enfin, pour rappel, lors du déploiement de code dans l'environnement de production, n'oubliez pas d'optimiser le chargement automatique :

composer dump-autoload --optimize

Vous pouvez également utiliser --optimize- lors de l'installation chargeur automatique de paquets. Sans cette option, vous risquez de constater une perte de performances de 20 à 25 %.

Pour plus d'articles techniques liés aux compositeurs, veuillez visiter la rubrique

composer : https://www.php.cn/tool/composer/

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