


Bringen Sie Ihnen bei, wie Sie Composer zum Verwalten von Abhängigkeiten verwenden
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!
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 'vendor/autoload.php'; $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 >, >=, !=, <=, < 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.
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
只要引用这个档案,就可以载入套件中所有对外公开的类别。基本上每个套件都会定义自己的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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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.

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

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.

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.

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.

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.
