Heim Betrieb und Instandhaltung Windows-Betrieb und -Wartung Detaillierte Einführung in Composer

Detaillierte Einführung in Composer

Oct 23, 2017 am 10:50 AM
composer 介绍 详细

Composer ist ein sehr beliebtes PHP-Paketabhängigkeitsmanagement-Tool. Es ist für PHP-Entwickler erforderlich, Composer zu beherrschen Paket mit einem einfachen Befehl in das Herstellerverzeichnis kopieren, und dann können Entwickler das Paket einführen und verwenden.

Der Schlüssel liegt in der von Ihrem Projekt definierten Composer.json, die die Projektabhängigkeiten definieren kann. Es kann mehrere geben Pakete (es können mehrere sein) und die abhängigen Pakete können von anderen Paketen abhängen (das ist der Vorteil von Komponenten). Sie müssen sich nicht darum kümmern, dass Composer alles, was Sie brauchen, automatisch herunterlädt Composer.json.

Composer ist für Benutzer sehr transparent, aber das Konzept dahinter muss noch verstanden werden. Dank der rasanten Entwicklung von Github wird die PHP-Sprache immer beliebter modern, es sieht fortgeschrittener aus.

Um Composer zu verstehen, müssen Sie zunächst ein allgemeines Verständnis seiner Struktur haben:

Die Struktur von Composer

Composer-Befehlszeilentool:

Dieses Verständnis ist relativ einfach. Laden Sie den benötigten Code über die benutzerdefinierte Composer.json herunter. Wenn Sie einfach nur Composer verwenden, reicht es aus, einige spezifische Befehle zu beherrschen



Autoloading-Code-Loader:

Durch Composer können Entwickler es auf vielfältige Weise nutzen, und der Schlüssel liegt im Namespace-Konzept von PHP und der Entwicklung des PSR-4-Standards, auf dem Composer gerade einen Code entwickelt hat diese beiden Autoloader



Github:

Mit Github können PHP-Entwickler Open-Source-Code darauf hosten, und die Entwicklung von Composer stammt aus Github, der Essenz von Composer The Oben geht es darum, den Code auf Github lokal herunterzuladen.



Packagist:

Für Benutzer wird das Befehlszeilentool von Composer verwendet. Was ist also mit der Befehlszeile? Das Wissen, wie viele Pakete von Benutzern verwendet werden können, basiert hauptsächlich auf Packagist. Paketentwickler hosten bestimmte Codes auf Github und übermitteln Paketinformationen an Packagist, damit diese über Composer verwendet werden können.

Composer fragt Packagist basierend auf den lokal definierten Composer.json-Informationen ab und greift schließlich auch auf das Github-Warehouse zurück, wenn es um Composer.json geht Im Github-Repository sind drei Arten von Composer.json beteiligt, und ihre Bedeutungen sind unterschiedlich.


Composer.json:

Das ist der Kern von Composer Von Composer. Die drei Arten von Composer.json müssen bei der Verwendung immer beachtet werden, als ich das Composer-Befehlszeilentool lernte >Composer Init


Benutzer können Composer.json unter ihren eigenen Projekten erstellen, um die Abhängigkeitspakete Ihres Projekts zu definieren, oder sie können Composer.json interaktiv über Composer Init erstellen.

Composer Install

sollte der am häufigsten verwendete Befehl sein. Composer installiert das Paket basierend auf der lokalen Composer.json, legt das heruntergeladene Paket im Herstellerverzeichnis unter dem Projekt ab und legt es während der Installation auch ab

Wenn während der Installation festgestellt wird, dass die Version von Composer.lock mit der Codeversion im aktuellen Herstellerverzeichnis übereinstimmt, führt Composer nichts aus von .lock soll es Ihnen ermöglichen, beruhigt unter der aktuellen Version zu arbeiten, ohne die neueste Version des Pakets zu erhalten Neueste Version des Pakets? Was? Sie können die neueste Version des Pakets über diesen Befehl aktualisieren

composer config

Die globale Konfiguration wird in COMPOSER_HOME/ gespeichert. config.json und die nicht-globalen Konfigurationsinformationen werden im Verzeichnis dieses Projekts gespeichert.

composer config --list -gcomposer config -g notify-on-install falsecomposer global config bin-dir --absolute

composer create-project

Dieser Befehl wird nicht häufig verwendet, aber ich persönlich denke, dass es immer noch sehr wichtig ist, alle Abhängigkeitspakete von herunterzuladen Mit diesem Befehl können Sie den gesamten Code und die abhängigen Pakete in einem Verzeichnis ablegen, indem Sie einen Git-Clone-Befehl ausführen >composer global

Dies ist ein globaler Installationsbefehl, der es Ihnen ermöglicht, Composer-Befehle im COMPOSER_HOME-Verzeichnis auszuführen, wie z. B. install und update. Natürlich muss sich Ihr COMPOSER_HOME in der $PATH-Umgebung befinden. Wenn Sie Composer Global ausführen, benötigen Sie Fabpot/php-cs-fixer. Jetzt kann die Befehlszeile von PHP-CS-Fixer global ausgeführt werden. Wenn Sie es später aktualisieren möchten, müssen Sie nur Composer Global Update

Composer Dump ausführen -autoload

Wenn Sie die Datei „composer.json“ unter dem Projekt ändern, müssen Sie zum Aktualisieren nicht den Befehl „composer update“ ausführen. Manchmal können Sie diesen Befehl verwenden, um den Loader zu aktualisieren Um auf ein lokales benutzerdefiniertes Paket zu verweisen (nicht von packagist), wird dieser Befehl später durch Übung erläutert.

composer require

Wenn Sie die Datei „composer.json“ manuell oder interaktiv erstellen, können Sie sie verwenden Verwenden Sie diesen Befehl, um das Paket direkt zu installieren

composer require cerdic/css-tidy:1.5.2composer require "ywdblog/phpcomposer:dev-master"


–prefer-source und –prefer -dist-Parameter

–prefer-dist: Bei stabilen Paketen verwendet die Composer-Installation im Allgemeinen standardmäßig diesen Parameter, was die Installation beispielsweise auch ohne die Installation des entsprechenden Pakets direkt aus Packagist beschleunigen kann Laden Sie das Paket tatsächlich von Github herunter >composer require "ywdblog/phpcomposer:dev-master" --prefer-source

# Enthält .git-Informationen im Verzeichnis seller/ywdblog/phpcomposer

Anleitung Fügen Sie Composer einen Proxy hinzu

Der Download mit Composer in China ist extrem langsam, Sie können ihn mit zwei Methoden beschleunigen

composer config repo.packagist Composer „https://packagist.phpcomposer.com“

composer.json bearbeiten

"repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com"

}

}

Autoloading Code Loader


Composer selbst integriert einen Autoloader, der PSR-4, PSR-0, Classmap und das automatische Laden von Dateien unterstützt.

Hier ist ein Beispiel, um zu veranschaulichen, wie Classmap und Dateien über Composer referenziert werden und der lokale Code dem PSR-4-Standard entspricht.

Composer.json bearbeiten

"autoload": { "classmap" : ["othsrc/","classsrc.php"], "files": ["othsrc/filesrc .php"], "psr-4": {"FooBar": "src"}

}

Composer Dump-Autoload

Durch die oben genannten Vorgänge gilt für PSR-4 dies als äquivalent zur Registrierung eines PSR-4-Autoloaders (aus dem FooBar-Namespace)


Wenn Sie es nicht tun Wenn Sie den Autoloader von Composer nicht verwenden möchten, können Sie die Datei „vendor/composer/autoload_*.php“ direkt einbinden und Ihren eigenen Loader konfigurieren.
Spezifische Beispiele werden auf Github gehostet, siehe

Repositories

Was Repositories betrifft, ist es nicht notwendig, sie zu verstehen, aber wenn Sie sie beherrschen, können Sie Composer For Repositories, seine chinesische Dokumentation und die englische Sprache besser verstehen. Das Dokument wird sehr gut erklärt, und einige Auszüge sind auch hier enthalten.


Grundlegende Konzepte

Paket:

Composer ist ein Abhängigkeitsverwaltungstool, das einige Ressourcenpakete lokal installiert und eine Beschreibung des Pakets (z. B. Paketname und entsprechende Version) enthält Wichtigere Metadatenbeschreibungen sind dist und source. dist verweist auf ein Archiv, bei dem es sich um ein Datenpaket einer bestimmten Version eines Ressourcenpakets handelt, das auf eine Entwicklungsquelle verweist, bei der es sich normalerweise um ein Quellcode-Repository (z. B. Git) handelt 🎜>

Repository:

Ein Repository ist die Quelle eines Pakets. Es ist eine Liste von Paketen/Versionen.

Composer durchsucht alle von Ihnen definierten Repositorys, um die Ressource zu finden Pakete, die für das Projekt erforderlich sind (dieser Satz ist sehr wichtig).

Packagist.org wurde standardmäßig bei Composer registriert (oder verstanden als Packagist.org ist der Standard-Warehouse-Typ der Composer-Ressourcenbibliothek)

Composer-Ressourcenbibliothekstyp

Die Composer-Ressourcenbibliothek umfasst vier Typen. Der Standardwert ist Composer-Typ, der von packagist.org verwendete Ressourcentyp.

Es wird eine einzelne Pakete.json-Datei verwendet das alle Ressourcenpaket-Metadaten enthält. Wenn Sie ein Paket auf pckagist.org veröffentlichen, erstellt das System standardmäßig eine packet.json, aber ich habe sie nicht. Finden Sie die Datei, die meinem Paket entspricht.

VCS-Ressourcenbibliothekstyp

Wenn Sie einen privaten Composer-Ressourcenbibliothekstyp erstellen möchten, können Sie diesen Typ verwenden. Dies ist beispielsweise der Fall, wenn Sie die Datei „composer.json“ Ihres eigenen Projekts verwenden wie folgt definiert, können Sie den entsprechenden Code auf Github verwenden.

{ "repositories": [ { „type“: „vcs“, „url“: „https://github.com/ywdblog/phpcomposer“ } ], „require“: { „ywdblog/phpcomposer“: „dev-master“ } }

Beim Ausführen des Composer-Updates lädt Comoser das Paket tatsächlich von Github statt von pckagist.org herunter.

Wenn Sie außerdem den Ressourcenbibliothekstyp „Paket“ oder den Ressourcenbibliothekstyp „PEAR“ verwenden müssen, Bitte beachten Sie die offizielle Dokumentation. Definieren Sie die Namens- und Versionsattribute in der Datei „composer.json“.

Composer.json wurde in diesem Artikel oft erwähnt. Wenn Sie beispielsweise ein Paket eines Drittanbieters verwenden möchten, müssen Sie Composer.json lokal definieren wird auch im Paketverzeichnis eines Drittanbieters gefunden, dann heißen beide „composer.json“. Was ist der Unterschied? Es ist sehr wichtig, das zu verstehen.

Wenn Sie eine „composer.json“ unter Ihrer eigenen definieren Dieses Paket wird als ROOT-Paket bezeichnet und definiert die für Ihr Projekt erforderlichen Bedingungen (z. B. kann Ihr Projekt von einem Paket eines Drittanbieters abhängen). nur vom ROOT-Paket verwendet werden, z. B. das config-Attribut nur im ROOT-Paket.

Ob ein Ressourcenpaket ein ROOT-Paket ist, hängt von seinem Kontext ab. Wenn Sie beispielsweise git clone ywdblog/ verwenden. phpcomposer, dann ist das lokale phpcomposer-Verzeichnis das ROOT-Paket. Wenn Sie sich im lokalen phpcomposer-Verzeichnis befinden, benötigt Composer ywdblog /phpcomposer, dann ist Ihr Projekt phpcomposer zu diesem Zeitpunkt das ROOT-Paket. schema.json, Sie können sich auf diese Website beziehen. Als ausgereiftes Framework ist Laravel's definiertes Composer.json sehr klassisch Geben Sie die spezifische Version des erforderlichen Pakets an. Composer unterstützt das Herunterladen von Paketen unter Tags oder Zweigen aus dem Github-Repository.

Für Tags auf Github erstellt Packagist eine Version des entsprechenden Pakets, die X.Y.Z, vX entspricht. Das heißt, obwohl es auf Github nur eine bestimmte Version des Pakets gibt, unterstützt Composer mehrere Referenzmethoden, wie zum Beispiel:

Composer erfordert Monolog/Monolog 1.0.0 -RC1

Komponist benötigt Monolog/Monolog v1.0.0-RC1

Komponist benötigt Monolog/Monolog 1.0.*

Komponist benötigt Monolog/Monolog ~1.10

Für Zweige auf Github: Packagist erstellt eine Version des entsprechenden Pakets. Wenn der Zweigname wie eine Version aussieht, wird eine Paketversion von {branch name}-dev erstellt. Wenn der Zweigname nicht wie eine Versionsnummer aussieht, wird eine erstellt Versionsnummer in Form von dev-{Zweigname}

composer require monolog/monolog master-dev
composer require monolog/monolog master .x-dev


Zusammenfassung:

Um Composer zu verstehen, ist Übung das Wichtigste. Schließlich können Sie PSR-4 und Namespaces verstehen und auch versuchen, Ihr Projekt auf pckagist.org zu veröffentlichen.



Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in Composer. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Beispiel für Laravel -Einführung Beispiel für Laravel -Einführung Apr 18, 2025 pm 12:45 PM

Laravel ist ein PHP -Framework zum einfachen Aufbau von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, darunter: Installation: Installieren Sie die Laravel CLI weltweit mit Komponisten und erstellen Sie Anwendungen im Projektverzeichnis. Routing: Definieren Sie die Beziehung zwischen der URL und dem Handler in Routen/Web.php. Ansicht: Erstellen Sie eine Ansicht in Ressourcen/Ansichten, um die Benutzeroberfläche der Anwendung zu rendern. Datenbankintegration: Bietet eine Out-of-the-Box-Integration in Datenbanken wie MySQL und verwendet Migration, um Tabellen zu erstellen und zu ändern. Modell und Controller: Das Modell repräsentiert die Datenbankentität und die Controller -Prozesse HTTP -Anforderungen.

Verbesserung der Serialisierungseffizienz der Doktrin: Anwendung von Sidus/Doctrin-Serializer-Bundle Verbesserung der Serialisierungseffizienz der Doktrin: Anwendung von Sidus/Doctrin-Serializer-Bundle Apr 18, 2025 am 11:42 AM

Ich hatte ein schwieriges Problem, wenn ich an einem Projekt mit einer großen Anzahl von Leitungseinheiten arbeitete: Jedes Mal, wenn das Unternehmen serialisiert und deserialisiert wird, wird die Leistung sehr ineffizient, was zu einer signifikanten Zunahme der Systemantwortzeit führt. Ich habe mehrere Optimierungsmethoden ausprobiert, aber es funktioniert nicht gut. Glücklicherweise habe ich durch die Verwendung von Sidus/Doctrine-Serializer-Bunde dieses Problem erfolgreich gelöst und die Leistung des Projekts erheblich verbessert.

Lösen Lösen Apr 18, 2025 am 09:24 AM

Bei der Entwicklung von Websites mit CraftCMS stoßen Sie häufig mit Ressourcendateiproblemen, insbesondere wenn Sie häufig CSS und JavaScript -Dateien aktualisieren, alte Versionen von Dateien möglicherweise weiterhin vom Browser zwischengespeichert. Dieses Problem wirkt sich nicht nur auf die Benutzererfahrung aus, sondern erhöht auch die Schwierigkeit der Entwicklung und des Debuggens. Kürzlich habe ich in meinem Projekt ähnliche Probleme gestoßen, und nach einigen Erkundungen fand ich das Plugin Wiejeben/Craft-Laravel-Mix, das mein Caching-Problem perfekt löste.

Verwenden Sie den Komponisten, um das Dilemma von Empfehlungssystemen zu lösen: Andres-Montanez/Empfehlungen-Bundle Verwenden Sie den Komponisten, um das Dilemma von Empfehlungssystemen zu lösen: Andres-Montanez/Empfehlungen-Bundle Apr 18, 2025 am 11:48 AM

Bei der Entwicklung einer E-Commerce-Website habe ich auf ein schwieriges Problem gestoßen: So liefern Sie den Benutzern personalisierte Produktempfehlungen. Anfangs habe ich einige einfache Empfehlungsalgorithmen ausprobiert, aber die Ergebnisse waren nicht ideal und die Benutzerzufriedenheit war ebenfalls betroffen. Um die Genauigkeit und Effizienz des Empfehlungssystems zu verbessern, habe ich mich entschlossen, eine professionellere Lösung zu übernehmen. Schließlich habe ich Andres-Montanez/Empfehlungen durch den Komponisten installiert, was nicht nur mein Problem löste, sondern auch die Leistung des Empfehlungssystems erheblich verbesserte. Sie können Komponist über die folgende Adresse lernen:

So erstellen Sie schnell Fecmall Advanced Project Templates mit Composer So erstellen Sie schnell Fecmall Advanced Project Templates mit Composer Apr 18, 2025 am 11:45 AM

Bei der Entwicklung einer E-Commerce-Plattform ist es entscheidend, das richtige Framework und Werkzeuge auszuwählen. Kürzlich, als ich versuchte, eine featurereiche E-Commerce-Website aufzubauen, stieß ich auf ein schwieriges Problem: wie ich schnell eine skalierbare und voll funktionsfähige E-Commerce-Plattform erstellen kann. Ich habe mehrere Lösungen ausprobiert und am Ende die erweiterte Projektvorlage von FecMall (FECMALL/FBBCBASE-APP-APMANCED) ausgewählt. Durch die Verwendung von Komponisten wird dieser Prozess sehr einfach und effizient. Komponist kann über die folgende Adresse gelernt werden: Lernadresse

Wie sehe ich die Versionsnummer von Laravel an? So sehen Sie die Versionsnummer von Laravel Wie sehe ich die Versionsnummer von Laravel an? So sehen Sie die Versionsnummer von Laravel Apr 18, 2025 pm 01:00 PM

Das Laravel-Framework verfügt über integrierte Methoden, um die Versionsnummer einfach zu sehen, um die verschiedenen Anforderungen der Entwickler zu erfüllen. In diesem Artikel werden diese Methoden untersucht, einschließlich der Verwendung des Befehlszeilen -Tools des Composers, der Zugriff auf .Env -Dateien oder das Erhalten von Versionsinformationen über PHP -Code. Diese Methoden sind für die Aufrechterhaltung und Verwaltung der Versionierung von Laravel -Anwendungen von wesentlicher Bedeutung.

So verwenden Sie Komponist, um die Sicherheit von Laravel-Anwendungen zu verbessern: Anwendungen der Wahrbenieuwenhuis/Laravel-2FA-Bibliothek So verwenden Sie Komponist, um die Sicherheit von Laravel-Anwendungen zu verbessern: Anwendungen der Wahrbenieuwenhuis/Laravel-2FA-Bibliothek Apr 18, 2025 am 11:36 AM

Bei der Entwicklung einer Laravel -Anwendung habe ich auf ein gemeinsames, aber schwieriges Problem gestoßen: wie die Sicherheit von Benutzerkonten verbessert werden kann. Mit der zunehmenden Komplexität von Cyber ​​-Angriffen reicht ein einzelner Kennwortschutz nicht mehr aus, um die Sicherheit der Benutzerdaten zu gewährleisten. Ich habe verschiedene Methoden ausprobiert, aber die Ergebnisse waren nicht zufriedenstellend. Schließlich installierte ich die WiebenieUwenhuis/Laravel-2FA-Bibliothek über Komponist und fügte meiner Anwendung erfolgreich die Zwei-Faktor-Authentifizierung (2FA) hinzu, wodurch die Sicherheit erheblich verbessert wurde.

So verwenden Sie Komponist, um Probleme bei der Überprüfung von JSON -Schema zu beheben So verwenden Sie Komponist, um Probleme bei der Überprüfung von JSON -Schema zu beheben Apr 18, 2025 am 11:51 AM

Ich habe ein schwieriges Problem bei der Entwicklung einer symfonybasierten Anwendung: So validieren Sie das JSON-Datenformat effektiv. Anfangs habe ich versucht, den manuellen Verifizierungscode zu verwenden, aber dies war nicht nur kompliziert, sondern auch fehleranfällige. Nach einiger Exploration entdeckte ich ein Komponistenpaket namens Ptyhard/JSON-Schema-Bundle, das meinem Projekt große Bequemlichkeit und Effizienz brachte.

See all articles