Comment construire une roue avec 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 :
Initialiser le fichier composer.json
Définir l'espace de noms et le nom du package
Fonction requise pour implémenter le package
Soumettre à GitHub
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
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
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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.

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

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.

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.

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é.

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.
