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

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

青灯夜游
Libérer: 2020-01-02 09:56:30
avant
3131 Les gens l'ont consulté

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
Copier après la connexion

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.
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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"
Copier après la connexion

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"
    }
}
Copier après la connexion

3. c'est facile

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

composer create-project doctrine/orm path 2.2.0
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:cnblogs.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal