Table des matières
Initialisez le fichier composer.json
nom
licence
exiger
chargement automatique
Structure du projet
Soumettre à GitHub
Soumettre à Packagist
Maison développement back-end tutoriel php Comment construire une roue avec composer

Comment construire une roue avec composer

Sep 07, 2017 am 10:06 AM
composer

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Exemple d'introduction de Laravel Exemple d'introduction de Laravel Apr 18, 2025 pm 12:45 PM

Laravel est un cadre PHP pour la création facile des applications Web. Il fournit une gamme de fonctionnalités puissantes, notamment: Installation: Installez le Laravel CLI globalement avec Composer et créez des applications dans le répertoire du projet. Routage: définissez la relation entre l'URL et le gestionnaire dans Routes / web.php. Voir: Créez une vue dans les ressources / vues pour rendre l'interface de l'application. Intégration de la base de données: fournit une intégration prête à l'emploi avec des bases de données telles que MySQL et utilise la migration pour créer et modifier des tables. Modèle et contrôleur: le modèle représente l'entité de la base de données et le contrôleur traite les demandes HTTP.

Améliorer l'efficacité de la sérialisation de l'entité de la doctrine: application de sidus / doctrine serializer-bundle Améliorer l'efficacité de la sérialisation de l'entité de la doctrine: application de sidus / doctrine serializer-bundle Apr 18, 2025 am 11:42 AM

J'ai eu un problème difficile lorsque je travaille sur un projet avec un grand nombre d'entités de doctrine: chaque fois que l'entité est sérialisée et désérialisée, la performance devient très inefficace, entraînant une augmentation significative du temps de réponse du système. J'ai essayé plusieurs méthodes d'optimisation, mais cela ne fonctionne pas bien. Heureusement, en utilisant le SIDUS / Doctrine-Serializer-Bundle, j'ai résolu avec succès ce problème, améliorant considérablement les performances du projet.

Résoudre les problèmes de mise en cache dans Craft CMS: Utilisation du plug-in Wiejeben / Craft-Laravel-MIX Résoudre les problèmes de mise en cache dans Craft CMS: Utilisation du plug-in Wiejeben / Craft-Laravel-MIX Apr 18, 2025 am 09:24 AM

Lorsque vous développez des sites Web à l'aide de CRAFTCMS, vous rencontrez souvent des problèmes de mise en cache de fichiers de ressources, en particulier lorsque vous mettez fréquemment à mettre à jour les fichiers CSS et JavaScript, les anciennes versions des fichiers peuvent toujours être mises en cache par le navigateur, ce qui fait que les utilisateurs ne voient pas les derniers changements de temps. Ce problème affecte non seulement l'expérience utilisateur, mais augmente également la difficulté du développement et du débogage. Récemment, j'ai rencontré des problèmes similaires dans mon projet, et après une exploration, j'ai trouvé le plugin wiejeben / artist-laravel-mix, qui a parfaitement résolu mon problème de mise en cache.

Comment construire rapidement des modèles de projet avancés Fecmall à l'aide du compositeur Comment construire rapidement des modèles de projet avancés Fecmall à l'aide du compositeur Apr 18, 2025 am 11:45 AM

Lors du développement d'une plate-forme de commerce électronique, il est crucial de choisir le bon cadre et les bons outils. Récemment, lorsque j'essayais de créer un site Web de commerce électronique riche en fonctionnalités, j'ai rencontré un problème difficile: comment créer rapidement une plate-forme de commerce électronique évolutive et entièrement fonctionnelle. J'ai essayé plusieurs solutions et j'ai fini par choisir le modèle de projet avancé de FECMALL (FECMALL / FBBCBASE-APP-ADVANDAD). En utilisant le compositeur, ce processus devient très simple et efficace. Le compositeur peut être appris par l'adresse suivante: Adresse d'apprentissage

Comment utiliser le compositeur pour résoudre les problèmes de vérification du schéma JSON Comment utiliser le compositeur pour résoudre les problèmes de vérification du schéma JSON Apr 18, 2025 am 11:51 AM

J'ai un problème délicat lors du développement d'une application basée sur Symfony: comment valider efficacement le format de données JSON. Initialement, j'ai essayé d'utiliser le code de vérification manuel, mais cela était non seulement compliqué, mais aussi sujet aux erreurs. Après une certaine exploration, j'ai découvert un forfait compositeur appelé Ptyhard / Json-Schema-Bundle, qui a apporté une grande commodité et efficacité à mon projet.

Utilisation du compositeur pour résoudre l'injection de dépendance: application de l'interface de conteneur PSR-11 Utilisation du compositeur pour résoudre l'injection de dépendance: application de l'interface de conteneur PSR-11 Apr 18, 2025 am 07:39 AM

J'ai rencontré un problème commun mais délicat lors du développement d'un grand projet PHP: comment gérer et injecter efficacement les dépendances. Initialement, j'ai essayé d'utiliser des variables globales et une injection manuelle, mais cela a non seulement augmenté la complexité du code, il a également conduit facilement à des erreurs. Enfin, j'ai résolu avec succès ce problème en utilisant l'interface de conteneur PSR-11 et avec la puissance du compositeur.

Comment utiliser le compositeur pour améliorer la sécurité des applications Laravel: Applications de la bibliothèque Wiebenieuwenhuis / Laravel-2FA Comment utiliser le compositeur pour améliorer la sécurité des applications Laravel: Applications de la bibliothèque Wiebenieuwenhuis / Laravel-2FA Apr 18, 2025 am 11:36 AM

Lors du développement d'une application Laravel, j'ai rencontré un problème commun mais difficile: comment améliorer la sécurité des comptes d'utilisateurs. Avec la complexité croissante des cyberattaques, une seule protection de mot de passe ne suffit plus pour assurer la sécurité des données des utilisateurs. J'ai essayé plusieurs méthodes, mais les résultats n'étaient pas satisfaisants. Enfin, j'ai installé la bibliothèque Wiebenieuwenhuis / Laravel-2FA via Composer et j'ai ajouté avec succès l'authentification à deux facteurs (2FA) à mon application, améliorant considérablement la sécurité.

Comment afficher le numéro de version de Laravel? Comment afficher le numéro de version de Laravel Comment afficher le numéro de version de Laravel? Comment afficher le numéro de version de Laravel Apr 18, 2025 pm 01:00 PM

Le Framework Laravel a des méthodes intégrées pour afficher facilement son numéro de version pour répondre aux différents besoins des développeurs. Cet article explorera ces méthodes, y compris l'utilisation de l'outil de ligne de commande Composer, l'accès à des fichiers .env ou l'obtention d'informations de version via le code PHP. Ces méthodes sont essentielles pour maintenir et gérer le versioning d'applications Laravel.

See all articles