Heim  >  Artikel  >  Entwicklungswerkzeuge  >  Bringen Sie Ihnen bei, wie Sie Composer zum Verwalten von Abhängigkeiten verwenden

Bringen Sie Ihnen bei, wie Sie Composer zum Verwalten von Abhängigkeiten verwenden

藏色散人
藏色散人nach vorne
2020-08-07 13:23:462851Durchsuche

In der folgenden Tutorial-Kolumne von Composer erfahren Sie, wie Sie Composer zum Verwalten von Abhängigkeiten verwenden. Ich hoffe, dass es für Freunde hilfreich ist, die es benötigen!

Bringen Sie Ihnen bei, wie Sie Composer zum Verwalten von Abhängigkeiten verwenden

composer war ursprünglich ein Tool zur Verwaltung von Paketabhängigkeiten in Symfony, dem PHP-Framework. Da es einfach und benutzerfreundlich ist, ist es mittlerweile ein unabhängiges Open-Source-Projekt. Viele Frameworks und Bibliotheken können mittlerweile mit Composer installiert und verwaltet werden.

Tatsächlich gibt es in PHP seit langem ein solches Tool zur Verwaltung von Paketabhängigkeiten, nämlich PEAR. Allerdings sind die Einstellungen von PEAR zu kompliziert und es ist schwierig, Abhängigkeiten für einzelne Projekte festzulegen, sodass Composer mittlerweile bei der Öffentlichkeit beliebt ist.

Diese Einführung richtet sich nur an Benutzer und deckt daher nicht die Teile ab, die Paketentwickler kennen müssen.

* Installation

Wenn Sie ein Windows-Benutzer sind, müssen Sie nur die Installationsdatei herunterladen und die Installation ausführen:

https://getcomposer.org/Composer-Setup.exe

Wenn Sie manuell installieren möchten, können Sie die Anweisungen auf der offiziellen Website befolgen:

http://getcomposer.org/doc/00-intro.md#installation-windows

Wenn Sie ein UNIX-ähnlicher Systembenutzer sind, können Sie es über diesen Befehl installieren: (curl muss zuerst installiert werden)

curl -sS https://getcomposer.org/installer | php

Das Installationsprogramm überprüft die PHP-Einstellungen und lädt dann Composer.phar in das aktuelle Verzeichnis herunter. Um Composer auszuführen, können Sie

php composer.phar

ausführen oder ihn einfach in eine ausführbare Datei

>mv composer.phar composer
>chmod +x composer

ändern und dann ./composer ausführen.

Wenn Sie es jedoch in verschiedenen Arbeitsverzeichnissen benötigen und kein Problem mit der Ausführungsberechtigung besteht, können Sie die Datei auch direkt nach /usr/local/bin kopieren.

* Abhängigkeiten festlegen

Wenn Sie Composer in einem Projekt verwenden, müssen Sie zunächst eine Composer.json-Datei generieren, die das zu verwendende Paket und die Version angibt. Wenn Sie beispielsweise phpmailer zum Versenden eines Briefes verwenden müssen, können Sie dies wie folgt angeben:

{
"require": {
"phpmailer/phpmailer": "~5.2.7"
}
}

und dann die Installation ausführen:

eng-Hsu-Pingteki-MacBook-Air:2-1a fillano$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing phpmailer/phpmailer (v5.2.7)
    Downloading: 100%         
Writing lock file
Generating autoload files
Feng-Hsu-Pingteki-MacBook-Air:2-1a fillano$

Die Installation ist abgeschlossen. Schauen Sie sich an, was installiert ist:

Feng-Hsu-Pingteki-MacBook-Air:2-1a fillano$ ls -l
total 16
-rw-r--r--  1 fillano  staff    66 10 11 18:15 composer.json
-rw-r--r--  1 fillano  staff  2330 10 11 18:16 composer.lock
drwxr-xr-x  5 fillano  staff   170 10 11 18:16 vendor

Anhand der Dateien im Verzeichnis können wir feststellen, dass ursprünglich nur die Datei „composer.json“ vorhanden war. Nach der Installation gibt es eine zusätzliche Datei „composer.lock“ und ein Herstellerverzeichnis. Werfen wir zunächst einen Blick auf den Inhalt von Composer.lock:

Feng-Hsu-Pingteki-MacBook-Air:2-1a fillano$ cat composer.lock
{
    "_readme": [
        "This file locks the dependencies of your project to a known state",
        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
    ],
    "hash": "065c23f92d5ae579cb91beff67f41196",
    "packages": [
        {
            "name": "phpmailer/phpmailer",
            "version": "v5.2.7",
            "source": {
                "type": "git",
                "url": "https://github.com/PHPMailer/PHPMailer.git",
                "reference": "8717a79565b2c0ed67f851d70e1949febdf3b226"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/8717a79565b2c0ed67f851d70e1949febdf3b226",
                "reference": "8717a79565b2c0ed67f851d70e1949febdf3b226",
                "shasum": ""
            },
            "require": {
                "php": ">=5.0.0"
            },
            "require-dev": {
                "phpdocumentor/phpdocumentor": "*",
                "phpunit/phpunit": "*"
            },
            "type": "library",
            "autoload": {
                "classmap": [
                    "class.phpmailer.php",
                    "class.pop3.php",
                    "class.smtp.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "LGPL-2.1"
            ],
            "authors": [
....下略

Es sieht aus wie die Informationen über das Paket, das gerade installiert wurde.

Schauen Sie sich noch einmal an, was sich im Vendor-Verzeichnis befindet:

Feng-Hsu-Pingteki-MacBook-Air:2-1a fillano$ tree vendor
vendor
├── autoload.php
├── composer
│   ├── ClassLoader.php
│   ├── autoload_classmap.php
│   ├── autoload_namespaces.php
│   ├── autoload_real.php
│   └── installed.json
└── phpmailer
    └── phpmailer
        ├── LICENSE
        ├── PHPMailerAutoload.php
        ├── README.md
        ├── changelog.md
        ├── class.phpmailer.php
        ├── class.pop3.php
        ├── class.smtp.php
        ├── composer.json
        ├── docs
        │   ├── Callback_function_notes.txt
        │   ├── DomainKeys_notes.txt
        │   ├── Note_for_SMTP_debugging.txt
        │   ├── extending.html
        │   ├── faq.html
        │   ├── generatedocs.sh
        │   └── pop3_article.txt
...下略

Es scheint, dass es neben dem phpmailer-Verzeichnis, in dem phpmailer installiert ist, hauptsächlich autoload.php-Dateien und Composer-Verzeichnisse gibt.

Es stellt sich heraus, dass Sie zum Laden eines über Composer installierten Pakets zuerst auf die Datei „vendor/autoload.php“ verweisen müssen und dann phpmailer verwenden können. Schreiben Sie ein einfaches Programm, um es zu testen:

<?php
require &#39;vendor/autoload.php&#39;;
$phpmailer = new PHPMailer;

Nach der Ausführung treten keine Fehler auf, was bedeutet, dass phpmailer normal geladen werden kann ... Als Nächstes werfen wir einen Blick auf die Verwendung dieser Dateien.

* Composer.json

Für Benutzer wird diese Datei hauptsächlich zur Verwaltung von Abhängigkeiten verwendet. Fügen Sie einfach ein Objekt zur Datei im Attribut „require“ hinzu, wobei der Attributname der Paketname und der Wert die Version ist. Der Paketname ist in zwei Teile unterteilt, der erste Teil ist der Hersteller und der zweite Teil ist der tatsächliche Paketname, getrennt durch „“. Es gibt mehrere Regeln für Versionen:

  • Geben Sie direkt die Versionsnummer an, z. B. 2.7.3.

  • Nach der Angabe der Hauptversionsnummer verwenden Sie „*“, um die Nebenversionsnummer anzugeben, z. B. 2.7.* die Versionsnummer ist größer oder gleich 2.7.0, Versionen kleiner als 2.8.0

  • verwenden Sie >, >=, !=, 83f597fc600dd9672409eb649edb13e5/acab04e509e5b64e7e2bc0d60ab53414的目录结构来组织。

    * vendor/autoload.php

    只要引用这个档案,就可以载入套件中所有对外公开的类别。基本上每个套件都会定义自己的autoload规则,在安装时,composer会把这些规则加入,这样透过autoload.php就可以直接使用所有已安装的类别。

    =====

    从这些地方可以看到,Composer这个套件管理工具,在设计上已经做了很周密的考量,只需要简单指定要使用的套件及版本,一个指令就可以安装完毕,引用一个胆案之后就能使用,这样真的非常方便。所以目前几乎所有的程式库以及Framework,应该都逐渐在套用这个工具了。未来在开发PHP程式,恐怕最基本的工具也就是composer。

Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen bei, wie Sie Composer zum Verwalten von Abhängigkeiten verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:ithome. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen