Heim Entwicklungswerkzeuge composer 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

Aug 07, 2020 pm 01:23 PM
composer

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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

>mv composer.phar composer
>chmod +x composer
Nach dem Login kopieren

ä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"
}
}
Nach dem Login kopieren

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$
Nach dem Login kopieren

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
Nach dem Login kopieren

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": [
....下略
Nach dem Login kopieren

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
...下略
Nach dem Login kopieren

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 dem Login kopieren

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 >, >=, !=, <=, < usw. vor der Versionsnummer, um dies anzuzeigen Diese Vergleichsoperatoren werden verwendet, um die Versionsnummernregel anzugeben, und mehrere Regeln werden durch "," getrennt. Verwenden Sie „~“ vor der Versionsnummer, um die Version vor der nächsten Änderung der Versionsnummer anzugeben. ~2.7 bedeutet beispielsweise, dass die Version größer oder gleich 2.7 und kleiner als 3.0 ist.

  • Nach der Versionsnummer können Sie auch verschiedene Stabilitätsflags hinzufügen, z. B. 2.7.*@beta. Die verwendbaren Flags sind: dev, alpha, beta, RC, Stable

  • Führen Sie nach Angabe der Version die Composer-Installation aus, und die neueste Version des Pakets wird gemäß den angegebenen Versionsregeln installiert.

  • Tatsächlich ist jedes Verzeichnis mit einer Composer.json-Datei auch das Stammverzeichnis eines Pakets. Wenn Sie es jedoch zu einem Kit für andere machen möchten, müssen Sie noch viele Einstellungen hinzufügen, die den Rahmen dieser Diskussion sprengen würden.

* Composer.lock

Nach der ersten Installation des Pakets wird diese Datei generiert, die die Informationen des installierten Pakets aufzeichnet. Die eigentliche Funktion dieser Datei ist: Wenn sich diese Datei im Verzeichnis befindet, wird bei der Installation nicht nach einer aktualisierten Version gesucht, sondern diese entsprechend der in dieser Datei aufgezeichneten Version installiert. Dieses Design ist wichtig, da die neue Version der Suite wahrscheinlich nicht mit der aktuell verwendeten Version kompatibel ist. Wenn nicht dieselbe Version verwendet wird, ist es schwierig, die Stabilität des Systems sicherzustellen. In der Vergangenheit konnte es bei der Verwendung von Pear zum Verwalten von Paketen zu Tragödien kommen, die durch Upgrades verursacht wurden, wenn man nicht aufpasste. Solange diese Datei zur Versionsverwaltung hinzugefügt wird, verfügen außerdem alle Entwicklerverzeichnisse über diese Datei, sodass die von allen verwendeten Paketversionen konsistent sind. Dies kann die Probleme reduzieren, die durch die Verwendung verschiedener Paketversionen während der Entwicklung entstehen. Probleme mit der Programmkompatibilität.

* Anbieterverzeichnis

所有套件都会放置在这个目录,并且依照/的目录结构来组织。

* vendor/autoload.php
Nach dem Login kopieren

只要引用这个档案,就可以载入套件中所有对外公开的类别。基本上每个套件都会定义自己的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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erweiterte Funktionen von Composer: Aliase, Skripte und Konfliktlösung Erweiterte Funktionen von Composer: Aliase, Skripte und Konfliktlösung Jun 03, 2024 pm 12:37 PM

Composer bietet erweiterte Funktionen, darunter: 1. Aliase: Definieren Sie praktische Namen für Pakete zur wiederholten Bezugnahme. 2. Skripte: Führen Sie benutzerdefinierte Befehle aus, wenn Sie Pakete installieren/aktualisieren, die zum Erstellen von Datenbanktabellen oder zum Kompilieren von Ressourcen verwendet werden , Zufriedenheitsbeschränkungen und Paketaliase lösen die unterschiedlichen Anforderungen mehrerer Pakete für dieselbe Abhängigkeitsversion auf, um Installationskonflikte zu vermeiden.

Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung May 08, 2024 pm 02:21 PM

Antwort: PHP-Microservices werden mit HelmCharts für eine agile Entwicklung bereitgestellt und mit DockerContainer für Isolation und Skalierbarkeit in Containern verpackt. Detaillierte Beschreibung: Verwenden Sie HelmCharts, um PHP-Microservices automatisch bereitzustellen, um eine agile Entwicklung zu erreichen. Docker-Images ermöglichen eine schnelle Iteration und Versionskontrolle von Microservices. Der DockerContainer-Standard isoliert Microservices und Kubernetes verwaltet die Verfügbarkeit und Skalierbarkeit der Container. Verwenden Sie Prometheus und Grafana, um die Leistung und den Zustand von Microservices zu überwachen und Alarme und automatische Reparaturmechanismen zu erstellen.

Was sind die gängigen Methoden zum Konvertieren von Arrays in Objekte in PHP? Was sind die gängigen Methoden zum Konvertieren von Arrays in Objekte in PHP? Apr 28, 2024 pm 10:54 PM

So konvertieren Sie ein PHP-Array in ein Objekt: Verwenden Sie die Klasse stdClass, verwenden Sie die Funktion json_decode(), verwenden Sie eine Bibliothek eines Drittanbieters (z. B. die Klasse ArrayObject, die Bibliothek Hydrator).

PHP-Code-Versionskontrolle und Zusammenarbeit PHP-Code-Versionskontrolle und Zusammenarbeit May 07, 2024 am 08:54 AM

PHP-Code-Versionskontrolle: Es gibt zwei Versionskontrollsysteme (VCS), die üblicherweise in der PHP-Entwicklung verwendet werden: Git: verteiltes VCS, bei dem Entwickler Kopien der Codebasis lokal speichern, um die Zusammenarbeit und Offline-Arbeit zu erleichtern. Subversion: Zentralisiertes VCS, die einzige Kopie der Codebasis wird auf einem zentralen Server gespeichert und bietet so mehr Kontrolle. VCS hilft Teams, Änderungen zu verfolgen, zusammenzuarbeiten und auf frühere Versionen zurückzusetzen.

Die Rolle von PHP CI/CD in DevOps-Projekten Die Rolle von PHP CI/CD in DevOps-Projekten May 08, 2024 pm 09:09 PM

PHPCI/CD ist eine Schlüsselpraxis in DevOps-Projekten, die die Erstellungs-, Test- und Bereitstellungsprozesse automatisiert und dadurch die Entwicklungseffizienz und Softwarequalität verbessert. Eine typische PHPCI/CD-Pipeline besteht aus den folgenden Phasen: 1) Kontinuierliche Integration: Immer wenn sich der Code ändert, wird der Code automatisch erstellt und getestet. 2) Kontinuierliche Bereitstellung: Beschleunigen Sie die Bereitstellung, indem Sie getesteten und integrierten Code automatisch in der Produktionsumgebung bereitstellen. Durch die Implementierung der PHPCI/CD-Pipeline können Sie die Entwicklungseffizienz steigern, die Softwarequalität verbessern, die Markteinführungszeit verkürzen und die Zuverlässigkeit verbessern.

Visualisierungstechnologie der PHP-Datenstruktur Visualisierungstechnologie der PHP-Datenstruktur May 07, 2024 pm 06:06 PM

Es gibt drei Haupttechnologien zur Visualisierung von Datenstrukturen in PHP: Graphviz: ein Open-Source-Tool, das grafische Darstellungen wie Diagramme, gerichtete azyklische Diagramme und Entscheidungsbäume erstellen kann. D3.js: JavaScript-Bibliothek zum Erstellen interaktiver, datengesteuerter Visualisierungen, zum Generieren von HTML und Daten aus PHP und zum anschließenden Visualisieren auf der Clientseite mithilfe von D3.js. ASCIIFlow: Eine Bibliothek zur Erstellung textueller Darstellungen von Datenflussdiagrammen, geeignet zur Visualisierung von Prozessen und Algorithmen.

Wie verwende ich den Redis-Cache bei der PHP-Array-Paginierung? Wie verwende ich den Redis-Cache bei der PHP-Array-Paginierung? May 01, 2024 am 10:48 AM

Durch die Verwendung des Redis-Cache kann die Leistung des PHP-Array-Pagings erheblich optimiert werden. Dies kann durch die folgenden Schritte erreicht werden: Installieren Sie den Redis-Client. Stellen Sie eine Verbindung zum Redis-Server her. Erstellen Sie Cache-Daten und speichern Sie jede Datenseite in einem Redis-Hash mit dem Schlüssel „page:{page_number}“. Rufen Sie Daten aus dem Cache ab und vermeiden Sie teure Vorgänge auf großen Arrays.

Wie verwende ich PHP CI/CD für eine schnelle Iteration? Wie verwende ich PHP CI/CD für eine schnelle Iteration? May 08, 2024 pm 10:15 PM

Antwort: Verwenden Sie PHPCI/CD, um eine schnelle Iteration zu erreichen, einschließlich der Einrichtung von CI/CD-Pipelines sowie automatisierten Test- und Bereitstellungsprozessen. Richten Sie eine CI/CD-Pipeline ein: Wählen Sie ein CI/CD-Tool aus, konfigurieren Sie das Code-Repository und definieren Sie die Build-Pipeline. Automatisierte Tests: Schreiben Sie Unit- und Integrationstests und verwenden Sie Test-Frameworks, um das Testen zu vereinfachen. Praktischer Fall: Verwendung von TravisCI: Installieren Sie TravisCI, definieren Sie die Pipeline, aktivieren Sie die Pipeline und sehen Sie sich die Ergebnisse an. Implementieren Sie Continuous Delivery: Wählen Sie Bereitstellungstools aus, definieren Sie Bereitstellungspipelines und automatisieren Sie die Bereitstellung. Vorteile: Verbessern Sie die Entwicklungseffizienz, reduzieren Sie Fehler und verkürzen Sie die Lieferzeit.

See all articles