Maison > développement back-end > tutoriel php > Comment construire une roue avec composer

Comment construire une roue avec composer

一个新手
Libérer: 2023-03-15 19:36:02
original
1834 Les gens l'ont consulté

Composer est un outil de gestion des dépendances pour PHP. Cet article explique comment créer un package et le soumettre à Packagist, afin que d'autres puissent facilement utiliser votre package via composer.

Il y a les étapes suivantes pour développer un package composer :

  1. Initialiser le fichier composer.json

  2. Définir l'espace de noms et le nom du package

  3. Fonction requise pour implémenter le package

  4. Soumettre à GitHub

  5. Enregistrer le package sur Packagist

Initialisez le fichier composer.json

Après avoir installé composer, vous pouvez l'exécuter localementcomposer init Définissez composer.json via la ligne de commande interactive.

Ce qui suit présente plusieurs des attributs, ainsi que les paramètres généraux :

nom

Cet attribut définit le nom du package, séparé par /, le précédent l'un est la fourniture. Le nom du fournisseur, suivi du nom du package, est un nom unique fourni par le site Web Packagist du représentant du fournisseur aux développeurs pour organiser les packages et éviter les conflits de noms. Par conséquent, lors de la soumission, il est préférable de visiter https://packagist.org/packages/yourvendorname et de remplacer votre nom de fournisseur dans l'URL par le nom souhaité. Si la page n'a pas 404, cela signifie qu'elle a été enregistrée.

licence

Licence. Concernant les licences, il est recommandé de lire deux articles : Introduction aux licences de projet open source et comment choisir la licence

exiger

Dépendances requises pour installer le package actuel. Le package actuel ne sera installé que si toutes les dépendances sont installées.

chargement automatique

Cette configuration utilise principalement les paramètres PSR-4 ou PSR-0, et il est plus recommandé d'utiliser la norme PSR-4.

http://json-schema.org/ présente la définition du schéma JSON et la mise en œuvre de ses différentes fonctions dans différents langages, y compris la mise en œuvre du validateur, parmi lesquels JSON Schema Validator est un outil en ligne vérification Servir. En fait, le moyen le plus simple est d'utiliser composer validate composer.json pour vérifier si le fichier contient des erreurs.

Structure du projet

La structure du projet est une structure MVC typique

.
└── geo
    └── geosso
        ├── LICENSE
        ├── README.md
        ├── composer.json
        └── src
            ├── Contracts
            ├── Http
            │   ├── Controllers
            │   ├── Middleware
            │   └── Requests
            ├── ParamsBean
            ├── Providers
            ├── Support
            └── config12 directories
Copier après la connexion

LICENSE, README.md et composer.json sont ajoutés manuellement après l'exécution de tree -d .

Le répertoire racine du projet est défini sous src et est également défini dans composer.json, de sorte que lorsque composer charge ce package, il sache comment résoudre le chemin du fichier via l'espace de noms.

Le répertoire HTTP représente la réponse à la demande, les contrôleurs ci-dessous représentent le contrôleur de la demande légale, le middleware représente le premier niveau de la demande, interceptant la demande via le middleware, et les demandes pour obtenir la demande frontale et filtrer la demande.

Les contrats représentent la définition de l'interface. ParamsBean représente l'encapsulation des paramètres lorsque la couche application communique avec le service sous-jacent. Il utilise le Bean pour obtenir chaque paramètre au lieu de transmettre un tableau pour rendre les appels cohérents. Il force également la détection de type lors de l'appel de l'interface, ce qui peut largement unifier le paramètre. transfert entre les couches.

Les fournisseurs représentent le conteneur de services de Laravel. Grâce au conteneur de services, vous pouvez enregistrer des routes et des configurations, charger des classes d'assistance et lier des interfaces et leurs implémentations.

La prise en charge concerne certaines classes d'assistance qui encapsulent des fonctions couramment utilisées qui n'ont rien à voir avec la logique. config représente la propre configuration de l'application, via config, la configuration peut être facilement définie et appelée à l'aide de la fonction globale config().

Soumettre à GitHub

Suivez les étapes précédentes, un package aura un squelette de base. L'étape suivante consiste à le télécharger sur GitHub, à configurer le projet, à intégrer les services d'intégration continue et à émettre un. licence de projet open source.

Lorsque GitHub initialise le projet, vous pouvez choisir de générer un fichier .gitignore, sélectionner une licence, initialiser le fichier README.md, basculer vers le répertoire du projet local et suivre les étapes suivantes pour télécharger le répertoire dans GitHub :

git init # 初始化仓库git remote set-url origin --push --add git@github.com:jayxhj/geosso.git # 添加远程追踪仓库地址git add .
git commit
git push origin master
Copier après la connexion

Soumettre à Packagist

Packagist est l'adresse par défaut permettant au compositeur d'obtenir les informations sur les métadonnées du package. Après avoir obtenu les informations sur les métadonnées de Packagist, extrayez le code de GitHub. Par conséquent, après avoir téléchargé le package que vous développez sur GitHub, vous devez l'enregistrer auprès de Packagist afin que les utilisateurs du monde entier puissent extraire votre code via 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!

Étiquettes associées:
source:php.cn
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