Maison  >  Article  >  outils de développement  >  Comment refactoriser l'outil de gestion des sources Composer CRM en un plug-in Composer

Comment refactoriser l'outil de gestion des sources Composer CRM en un plug-in Composer

藏色散人
藏色散人avant
2020-02-26 15:03:272032parcourir

Comment refactoriser l'outil de gestion des sources Composer CRM en un plug-in Composer

CRM est un outil en ligne de commande que j'ai créé il y a longtemps pour gérer les sources du composer. Il est conçu pour utiliser des commandes simples pour gérer. plusieurs sources. Changement de miroir en Chine, afin de les gérer facilement

À cette époque, je ne connaissais pas grand-chose au plug-in Composer, donc la méthode était relativement grossière. la commande composer pour atteindre l'objectif de changer de source, et elle a été utilisée sous Linux Heureusement, il n'y a presque pas de perception particulière, mais la victoire sera un peu lente. C'est également évident. Après tout, changer équivaut à exécuter plusieurs commandes en même temps. Plus tard, grâce à l'opportunité de travail, j'ai découvert le développement du plug-in composer, donc l'idée du refactoring. est apparu ;

et 1.x Par rapport à la version 2.x, 2.x présente principalement les changements suivants :

L'emplacement de stockage des métadonnées change

Dans la version 1.x, il se trouve sous le dossier d'accueil de l'utilisateur. Un fichier personnalisé, toutes les opérations de l'utilisateur sont finalement conservées dans ce fichier json ; la nouvelle version stocke les métadonnées dans config.json sous le chemin global du composer :

{
    "config": {
        "_alias": {
            "val": "validate",
            "up": "update",
            "req-sf": "require symfony/event-dispatcher symfony/console",
            "req": "require",
            "i": "install"
        },
        "_repositories": [{
                "name": "composer",
                "url": "https://packagist.org",
                "homepage": "",
                "author": ""
            }, {
                "name": "phpcomposer",
                "url": "https://packagist.phpcomposer.com",
                "homepage": "",
                "author": ""
            }, {
                "name": "composer-proxy",
                "url": "https://packagist.composer-proxy.org",
                "homepage": "",
                "author": ""
            }, {
                "name": "laravel-china",
                "url": "https://packagist.laravel-china.org",
                "homepage": "",
                "author": ""
            }]
    },
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.laravel-china.org"
        }
    }
}
<.> Ceci est maintenu par composer Nous avons emprunté un fichier et y avons occupé un champ. Ceci est également plus conforme à l'écosystème du compositeur

Changements de commandes

La version 1.x est une application d'entrée indépendante, et les commandes commencent toutes par le mot-clé crm, tel que crm ls ; dans la nouvelle version Dans le plug-in, crm devient un rôle de fournisseur de commandes, donc dans la nouvelle version, nous utilisons l'entrée composer

Utilisation de la nouvelle version

Liste de toutes les images disponibles

$ composer repo:ls
  composer       https://packagist.org
  phpcomposer    https://packagist.phpcomposer.com
* composer-proxy https://packagist.composer-proxy.org
  laravel-china  https://packagist.laravel-china.org

Marqué avec "*" indique la source actuellement utilisée ;

Changer de miroir

$ composer repo:use
Please select your favorite registry (defaults to composer)
  [0] composer
  [1] phpcomposer
  [2] composer-proxy
  [3] laravel-china
 >

Vous pouvez également ajouter directement le nom du miroir pour ignorer la sélection

$ composer repo:use phpcomposer

Ajouter option- -current/-c change la source du projet actuel. La valeur par défaut est de modifier la source globale.

Toutes les commandes

Exécutez la commande suivante pour afficher

$ composer repo

Résumé

En plus des changements d'utilisation, l'amélioration la plus significative de la nouvelle version peut être l'amélioration de la vitesse ; comme si vous avez des questions, vous êtes invités à donner votre avis. Vous pouvez laisser un message sous la publication ou publier sur des problèmes github.

J'espère que ce petit outil apportera du confort à chacun dans son travail et son développement.

Pour plus de contenu lié à la programmation, veuillez faire attention à la colonne

Introduction à la programmation sur le site Web PHP chinois !

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