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-31 18:00:133067parcourir

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 toutes les mettre à jour. ses dépendances, ce qui est très difficile Simple

composer update foo/bar

De plus, cette astuce peut également être utilisée pour résoudre des "problèmes de messages 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, vous pouvez alors 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. c'est facile

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

Vous pouvez ensuite 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,?]?</p>
<p> Préparer pour l'environnement de production </p>
<p>Enfin, lors du déploiement de code dans l'environnement de production, n'oubliez pas d'optimiser le chargement automatique : </p>
<pre class="brush:php;toolbar:false">composer dump-autoload --optimize

Vous pouvez également utiliser --optimize- lors de l'installation du chargeur automatique de packages. 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 compositeur ! !

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