Maison outils de développement composer Vous pouvez apprendre le compositeur rapidement !

Vous pouvez apprendre le compositeur rapidement !

Jul 04, 2020 pm 01:21 PM
composer

La colonne tutorielle suivante de compositeur vous présentera comment apprendre le compositeur. J'espère qu'elle sera utile aux amis qui en ont besoin !

Vous pouvez apprendre le compositeur rapidement !

Lorsque le système dispose de différentes applications Web, mais qu'elles ont besoin à partager Que faire avec beaucoup de code
Lorsque le système a besoin d'une fonction étendue et que quelqu'un sur Internet explique comment l'utiliser
Comment mettre à niveau, rétrograder et restaurer le code PHP
Comment pour répartir les tâches et comment permettre à plusieurs ingénieurs de travailler ensemble Tâches de développement

Je suis entré en contact avec PHP en 2011, alors que la V5.3.5 venait de sortir. Au niveau du langage, je ne pense pas que PHP ait des défauts trop évidents. Sur la base de notre riche bibliothèque de fonctions orientées web, nous avons également des classes, des SPL, des fonctions anonymes, etc. Ces fonctionnalités (pas du tout "spéciales") sont suffisantes pour répondre aux besoins de codage d'un grand projet.

Vous pouvez apprendre le compositeur rapidement !
PHP5.3

Cependant, lorsque nous développons réellement et voulons vraiment écrire du code en PHP, nous rencontrons souvent des problèmes fous, ces problèmes n'ont rien à voir. faire avec PHP. Mais ça reste un casse-tête. Lorsque nous voulons écrire un site Web, nous pouvons avoir besoin d'un code de vérification, mais dans la plupart des cas, je ne souhaite pas écrire moi-même un code de vérification. Il existe tellement de types de codes de vérification sur Internet que je souhaite naturellement les utiliser directement. Mais quand je veux l'utiliser directement, ce que je dois faire est :

  1. Accédez au moteur de recherche pour effectuer une recherche, puis voyez s'il y a un code approprié dans chaque résultat qui peut être utilisé par moi.
  2. J'ai trouvé une classe. Maintenant, je dois introduire cette classe dans mon projet. Dans quel répertoire dois-je la mettre ? Comment charger automatiquement ? Est-ce que cela dépend d'extensions ? Devra-t-il être utilisé sur une version de PHP supérieure à celle que j'utilise actuellement ? Ce sont tous des problèmes que je veux résoudre.
  3. Si je veux résoudre tous les problèmes mentionnés en 2, alors pourquoi ne pas en écrire un ?
  4. f**k it

Même si j'utilise mon propre code, quand j'ai plusieurs applications web (côté ordinateur, côté wap, interface api c'est normal), bien sûr je J'espère qu'ils ne vivent pas dans un projet (répertoire), ce qui augmenterait la difficulté pour moi de visualiser les fichiers spécifiés, augmentant ainsi également mes coûts de maintenance. Mais quand j'ai séparé ces applications web, il y avait tellement de codes communs (modèle, logique, authentification...), comment dois-je gérer ces codes j'ai modifié une petite logique d'une application web, et je l'ai aussi quand je la modifie ? dans d'autres applications, soit je ne m'en souviens pas, soit le moindre changement me donne envie de casser l'ordinateur, de quitter mon travail ou de sortir me détendre.

D'accord, je vais diviser ces codes et les utiliser les uns avec les autres via le chargement automatique. Cela permettra également à davantage de personnes de participer au développement, mais la situation en ligne est tellement compliquée s'il y a un problème avec une pièce. de code, , dans le cas où il existe une application Web spéciale et que le nouveau code ne s'y applique pas. La maintenance est également un problème. Si vous prenez en charge une application Web qui s'appuie sur de nombreux autres projets, vous risquez d'avoir beaucoup de problèmes si vous modifiez légèrement le code, car le code de chargement automatique rend difficile la compréhension intuitive du fonctionnement de l'application Web. est utilisé. Quel code pour quels autres projets.

Mais quand il s’agit de PHP, je ne veux pas le casser car c’est tellement pratique à écrire. Je ne veux pas encore sortir du piège. Mais si les problèmes ci-dessus ne sont pas résolus, je pense personnellement qu’écrire PHP reste une chose très frustrante. Voyons comment d'autres langages résolvent ce problème. Le mécanisme d'empaquetage naturel de JAVA lui permet d'utiliser maven, le npm du nœud et même Perl, qui est plus ancien que PHP, a cpan. PHP ne devrait-il pas avoir un mécanisme de gestion des packages ?

Heureusement, ces problèmes n'ont pas accompagné mon PHP trop longtemps, car bientôt, PHP avait Composer, et le soleil s'est levé.

Composer est un outil de gestion des dépendances pour PHP. Il vous permet de déclarer les bibliothèques de code dont dépend votre projet et il les installera pour vous dans votre projet.

Ceci est l'introduction du site officiel chinois de Composer.

J'essaie d'expliquer cette phrase à partir de mon expérience.

Il vous permet de déclarer la base de code dont dépend le projet. Cela signifie que lorsque vous souhaitez utiliser le code, vous n'avez plus besoin de le copier vous-même, vous pouvez le dire à Composer via une déclaration, comme si vous y alliez. aller au restaurant pour manger. Vous n'êtes pas obligé d'apprendre au chef à le cuisiner, encore moins de le cuisiner vous-même, et vous n'êtes pas obligé de servir l'assiette et de le manger vous-même. Au lieu de cela, dites au serveur ce que vous voulez. mange, dis-lui. Bien sûr, tu ne peux pas lui dire que j'ai mal au ventre aujourd'hui, cuisine-moi quelque chose. C'est plus facile de digérer des plats plus légers. De toute façon, je ne commande jamais comme ça, je dois toujours leur dire quoi. plat que vous souhaitez manger et le nom précis du plat. C'est la différence avec la recherche de code dans un moteur de recherche auparavant. Vous ne pouvez pas indiquer à Composer via des mots-clés, mais vous devez lui indiquer le nom de la bibliothèque de code WTF ? Comment connaître le nom du code ? Il est impossible pour quiconque de connaître le nom des codes d'autres personnes, à moins qu'il n'y ait un endroit qui contient tous les codes et fournit une fonction de recherche pour nous permettre de les trouver et de connaître leurs noms. 🎜>packagist.org fait ceci. Nous n'avons plus besoin d'aller sur différents moteurs de recherche pour le trouver par hasard. Lors de la recherche de mots-clés ici, aucune annonce n'apparaîtra, ni Putian ni JD n'apparaîtront.

Il les installera pour vous dans votre projet : Après avoir prévenu Composer, Composer va naturellement nous aider à apporter les plats C'est quelque chose que tout le monde peut comprendre, le code qu'on veut On ne sait pas de quel serveur il s'agit. activé, mais Composer nous aidera à le télécharger localement. Mais il y a encore une question ici, comment l'utiliser après l'avoir téléchargé. Nous savons que si vous souhaitez utiliser un fichier en PHP, vous devez l'inclure ou l'exiger. Une fois Composer téléchargé, comment manger ce plat ? préparer soi-même ses bols et ses baguettes ? Heureusement, il existe une autre bonne chose appelée PHP-FIG. Cette chose ne produit pas de code et n'apporte aucune solution aux problèmes pratiques. La seule chose qu'il fait, c'est du barbecue, alors pourquoi fait-il du barbecue ? Comme je l'ai dit plus haut, en raison du manque de certains outils de base (tels que Composer), il est difficile pour le développement PHP d'avoir certaines normes, telles que les normes de codage, comme la structure des répertoires, comme la façon de charger automatiquement les classes, comme comment se connecter, par exemple comment utiliser le cache, à quoi cela va-t-il conduire ? Différentes entreprises et différents programmeurs PHP commenceront à montrer leurs pouvoirs magiques. Bien sûr, cela n'aura pas d'importance à court terme pour le développement, mais à long terme, cela augmentera les coûts de développement et de maintenance lorsque nous changerons d'entreprise. on reprend un projet, il faut comprendre le code à partir de zéro Même en équipe, on va augmenter les coûts de communication car il n'y a pas de standards. C'est exactement ce que fait PHP-FIG : établir des normes. Les normes qu'il a formulées comprennent :

    Spécifications de codage (
  1. psr-1)psr-2
  2. Spécifications de chargement automatique (
  3. )psr-4
  4. Certains journaux d'interface communs (
  5. ) cache(psr-3) http(psr-6)psr-7
Ces normes sont décrites en détail sur le site officiel. Ce dont nous allons discuter ici est le psr-4. Je vais développer ici en me basant sur ma propre compréhension et expérience : le chargement automatique de psr-4 est basé sur les dossiers et les espaces de noms. Nous devons spécifier qu'un répertoire racine correspond à un espace de noms racine. Sur cette base, nous pouvons supprimer l'espace de noms racine. et le nom de la classe en dehors de l'espace de noms pour trouver ce fichier PHP dans le dossier racine et charger

#根文件夹 lib#根命名空间 model#file lib/A.phpnamespace model;class A {}#file lib/entity/B.phpnamespace mode\entity;class B{}#file demo.php$a = new \model\A();$b = new \model\entity\B();
Copier après la connexion
Composer peut se rendre compte qu'il peut être basé sur des normes spécifiées (telles que

) et des relations de mappage (telles que dans le code lib->model) pour générer la fonction de chargement automatique des classes. En fait, Composer fournit ces standards : psr-4

files spécifie le chemin d'accès au fichier PHP. Cette méthode chargera ces fichiers à chaque requête, adapté aux fichiers PHP de certaines fonctions courantes.

Classmap est plus intelligent. que les fichiers. Il peut spécifier un dossier ou un fichier pour le chargement automatique. L'inconvénient est que même si un dossier est spécifié, l'ajout d'un fichier à ce dossier nécessite que Composer régénère le fichier de chargement automatique. Il convient à certaines applications qui ne peuvent pas utiliser psr. -4 classes ou bibliothèques de classes, comme un client d'interface tiers. Ce client a peut-être existé avant l'apparition des règles psr-4, nous souhaitons donc toujours utiliser Composer pour le gérer, nous pouvons donc utiliser cette méthode

<.>

Le prédécesseur de

était obsolète auparavant, faites comme si je ne l'avais pas dit psr-0psr-4 Comme je l'ai présenté ci-dessus, ajouter un ou plusieurs fichiers de cette manière ne nécessite pas de régénération
fichier car il est chargé en fonction du mappage entre l'espace de noms et le dossier. psr-4autoloadAlors, quels sont les avantages de la mise en œuvre de cette fonctionnalité par Composer ?

Nous n'avons pas besoin d'écrire de fichiers à chargement automatique nous-mêmes. En même temps, cette norme est facile à comprendre et à accepter, et le coût de maintenance et d'apprentissage du code est également réduit

Tant que. les bibliothèques tierces dont nous avons besoin utilisent également Composer pour gérer le chargement automatique, nous n'avons besoin que de ce package, puis Composer gérera également le code qui charge cette bibliothèque tierce. Nous avons un fichier de chargement automatique super puissant

Donc, ce que nous devons faire, c'est apprendre à gérer Composer, puis commencer à profiter du code des développeurs du monde entier.

就像上面描述的,Composer就像一个机器猫,你要什么它就给什么,那么交互的方式就类似于SQL语句那样,告诉它你要什么然后它给你结果。所以我们要做的就是描述需求,也就是当产品经理,好过瘾。

{
    "name": "fmw/test",
    "description": "fmw test",
    "authors": [
        {
            "name": "zzc",
            "email": "2272713550@qq.com"
        }
    ],
    "repositories": [
        {
            "type": "composer",
            "url": "http://package.fmw.com"
        }
    ],
    "version":"1.0.106",
    "require": {
        "fmw/other-layer":"1.*",
        "fmw/common":"1.*"
    },
    "require-dev":{
        "php-console/php-console": "^3.1",
        "phpdocumentor/phpdocumentor": "2.*"
    },
    "autoload":{
        "psr-4":{
            "model\\":"src/"
        }
    }
}
Copier après la connexion

以上代码是一个我用过的composer配置文件,可以看出这是一个标准的json。我们来看一下这段json的每个key:

name和description是你给这个php项目起的名字,当这个项目仅仅是一个web项目,这两个其实不是很重要,但是这个项目其实是一个向外发布的代码库,就很关键了,name需要独一无二,description需要一句话来描述这个包的作用。

authors就是相当于宣布一下主权,可以有多个

repositories相当于你需要下载的代码库所在的仓库,默认会有一个全局的仓库,具体是什么就不在这里说了,上面的某个网址有介绍,在这里添加一个是因为如果你有个私人的仓库(有些代码不太适合放在公开的仓库吧),则可以在这里声明

version是版本号,这个是跨时代的功能啊,有了这个,PHP程序员也可以刷版本号了啊!

require则是上面阐述了很多的功能,解决了我说的那些痛点,通过“name”:"version"声明,可以有多个,require以后使用composer install命令composer会下载代码并自动加载
require-dev用法一致,但是功能不同,是用来声明一些在开发时候才用到的包,比如测试、文档等等

autoload 上面有介绍,就不废话

上面工作做完以后,执行composer install我们可以看到和composer.json同级的文件夹下生成了一个vendor文件夹,我们新建一个php文件引入vendor下的autoload.php文件就可以使用包和我们自己声明的autoload的php文件了
#index.php

include ‘./vendor/autoload.php’;

到这里,我们就算会用了composer,至于如何使用composer的功能就不拾人牙慧了,但是还有一些问题想讨论一下。

比如有些代码不太适合放在公开的仓库,但是我们还是希望包的形式来使用,毕竟这样的话,一个公司内部就很容易分工了,每一个PHP程序员维护若干个包,多方便,所以建立一个内部的代码仓库是很重要的。这时候Composer官方提供的工具satis就可以发挥作用了。

Simple static Composer repository generator

这是它的介绍,一个简单的Composer仓库生成器。使用它的步骤如下:

在合适的目录执行 php composer.phar create-project composer/satis --stability=dev --keep-vcs(前提是你已经按照Composer)
新建一个satis.json 实例如下

{
    "name": "My Repository",
    "homepage": "http://packages.dev.com",
    "repositories": [
        {"type": "vcs", "url": "http://git.dev.com/maxincai/package1.git"},
        {"type": "vcs", "url": "http://git.dev.com/maxincai/package1.git"},
    ],
    "require": {
        "maxincai/package1": "*",
        "maxincai/package2": "*",
    }
}
Copier après la connexion

执行 php bin/satis build satis.json public/(public就是所有包的存放目录)
将public目录作为一个web服务对外发布就好了

使用的时候只需要在repositories多加一项(就像我在上面的composer.json做的那样),然后引入包就好了

关于Composer,上面就是我目前要说的了,通过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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

Fonctionnalités avancées de Composer : alias, scripts et résolution de conflits Fonctionnalités avancées de Composer : alias, scripts et résolution de conflits Jun 03, 2024 pm 12:37 PM

Composer fournit des fonctionnalités avancées, notamment : 1. Alias : définissez des noms pratiques pour les packages pour référence répétée ; 2. Scripts : exécutez des commandes personnalisées lors de l'installation/mise à jour de packages, utilisées pour créer des tables de base de données ou compiler des ressources ; 3. Résolution de conflits : utilisez des règles de priorité ; , les contraintes de satisfaction et les alias de package résolvent les différentes exigences de plusieurs packages pour la même version de dépendance afin d'éviter les conflits d'installation.

Quelles sont les méthodes courantes pour convertir des tableaux en objets en PHP ? Quelles sont les méthodes courantes pour convertir des tableaux en objets en PHP ? Apr 28, 2024 pm 10:54 PM

Comment convertir un tableau PHP en objet : utilisez la classe stdClass, utilisez la fonction json_decode(), utilisez une bibliothèque tierce (telle que la classe ArrayObject, la bibliothèque Hydrator)

Développement et exploitation agiles de la conteneurisation de microservices PHP Développement et exploitation agiles de la conteneurisation de microservices PHP May 08, 2024 pm 02:21 PM

Réponse : Les microservices PHP sont déployés avec HelmCharts pour un développement agile et conteneurisés avec DockerContainer pour l'isolation et l'évolutivité. Description détaillée : utilisez HelmCharts pour déployer automatiquement des microservices PHP afin de réaliser un développement agile. Les images Docker permettent une itération rapide et un contrôle de version des microservices. Le standard DockerContainer isole les microservices et Kubernetes gère la disponibilité et l'évolutivité des conteneurs. Utilisez Prometheus et Grafana pour surveiller les performances et l'état des microservices, et créer des alarmes et des mécanismes de réparation automatiques.

Contrôle de version et collaboration du code PHP Contrôle de version et collaboration du code PHP May 07, 2024 am 08:54 AM

Contrôle de version du code PHP : Il existe deux systèmes de contrôle de version (VCS) couramment utilisés dans le développement PHP : Git : VCS distribué, où les développeurs stockent localement des copies de la base de code pour faciliter la collaboration et le travail hors ligne. Subversion : VCS centralisé, la seule copie de la base de code est stockée sur un serveur central, offrant plus de contrôle. VCS aide les équipes à suivre les modifications, à collaborer et à revenir aux versions antérieures.

Comment utiliser le cache Redis dans la pagination des tableaux PHP ? Comment utiliser le cache Redis dans la pagination des tableaux PHP ? May 01, 2024 am 10:48 AM

L'utilisation du cache Redis peut considérablement optimiser les performances de la pagination du tableau PHP. Cela peut être réalisé en suivant les étapes suivantes : Installez le client Redis. Connectez-vous au serveur Redis. Créez des données de cache et stockez chaque page de données dans un hachage Redis avec la clé « page : {page_number} ». Récupérez les données du cache et évitez les opérations coûteuses sur les grandes baies.

Le rôle de PHP CI/CD dans les projets DevOps Le rôle de PHP CI/CD dans les projets DevOps May 08, 2024 pm 09:09 PM

PHPCI/CD est une pratique clé dans les projets DevOps qui automatise les processus de création, de test et de déploiement, améliorant ainsi l'efficacité du développement et la qualité des logiciels. Un pipeline PHPCI/CD typique comprend les étapes suivantes : 1) Intégration continue : chaque fois que le code change, le code est automatiquement construit et testé. 2) Déploiement continu : accélérez la livraison en déployant automatiquement le code testé et intégré dans l'environnement de production. En mettant en œuvre le pipeline PHPCI/CD, vous pouvez augmenter l’efficacité du développement, améliorer la qualité des logiciels, réduire les délais de mise sur le marché et augmenter la fiabilité.

Comment utiliser PHP CI/CD pour itérer rapidement ? Comment utiliser PHP CI/CD pour itérer rapidement ? May 08, 2024 pm 10:15 PM

Réponse : Utilisez PHPCI/CD pour réaliser une itération rapide, y compris la configuration de pipelines CI/CD, de tests automatisés et de processus de déploiement. Configurer un pipeline CI/CD : sélectionnez un outil CI/CD, configurez le référentiel de code et définissez le pipeline de build. Tests automatisés : rédigez des tests unitaires et d'intégration et utilisez des frameworks de test pour simplifier les tests. Cas pratique : Utilisation de TravisCI : Installez TravisCI, définissez le pipeline, activez le pipeline et visualisez les résultats. Mettez en œuvre la livraison continue : sélectionnez les outils de déploiement, définissez les pipelines de déploiement et automatisez le déploiement. Avantages : améliorez l’efficacité du développement, réduisez les erreurs et raccourcissez les délais de livraison.

Technologie de visualisation de la structure des données PHP Technologie de visualisation de la structure des données PHP May 07, 2024 pm 06:06 PM

Il existe trois technologies principales pour visualiser les structures de données en PHP : Graphviz : un outil open source capable de créer des représentations graphiques telles que des graphiques, des graphiques acycliques dirigés et des arbres de décision. D3.js : bibliothèque JavaScript pour créer des visualisations interactives basées sur les données, générer du HTML et des données à partir de PHP, puis les visualiser côté client à l'aide de D3.js. ASCIIFlow : une bibliothèque pour créer une représentation textuelle de diagrammes de flux de données, adaptée à la visualisation de processus et d'algorithmes.

See all articles