suchen
HeimEntwicklungswerkzeugecomposerTutorial zur Composer-Nutzung (grundlegende Verwendung)

Composer ist ein Abhängigkeitsmanagement-Tool für PHP. Mit ihm können wir ganz einfach einen Befehl verwenden, um andere hervorragende Codes in unseren Projekten zu referenzieren. Unten wird in der Spalte Tutorial zur Composer-Nutzung die grundlegende Verwendung von Composer erläutert. Ich hoffe, dass es Freunden in Not hilfreich sein wird!

Tutorial zur Composer-Nutzung (grundlegende Verwendung)

Grundlegende Verwendung

Einführung

Einführung in die grundlegende Verwendung, wir werden Monolog installieren /monolog-Protokollierungsbibliothek als Beispiel. Zum Beispiel

Hinweis: Der Einfachheit halber gehen wir davon aus, dass Sie Composer lokal installiert haben.

composer.json: Projekteinstellungen

Um Composer in Ihrem Projekt zu verwenden, benötigen Sie eine Composer.json-Datei. Diese Datei beschreibt Ihre Projektabhängigkeiten und andere Metadaten.

Anforderungsschlüssel

Das erste (und normalerweise einzige), was Sie tun sollten, ist, den Anforderungsschlüssel in Ihrer Composer.json-Datei zu definieren. Sie sollten Composer kurz mitteilen, von welchen Paketen Ihr Projekt abhängt.

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

Wie oben gezeigt, erhält require ein JSON-Objekt mit einem Paketnamen (z. B. monolog/monolog), der einer Versionsbeschränkung (z. B. 1.0.*) zugeordnet ist.

Composer verwendet diese Informationen, um nach geeigneten Dateien im Versions-Repository zu suchen, das durch den Repository-Schlüssel angegeben wird, den Sie in Composer.json registriert haben, oder im Standardpaket-Repository in Packagist. Da im obigen Beispiel keine weiteren Repository-Informationen in der Datei „composer.json“ registriert sind, wird davon ausgegangen, dass sich das Paket „monolog/monolog“ standardmäßig in Packagist befindet. (Weitere Packagist-Informationen finden Sie unten oder lesen Sie hier mehr darüber.

Paketname

Der Paketname besteht aus dem Herstellernamen und dem Projektnamen. Typischerweise in Wenn diese Namen identisch sind, löst das Vorhandensein des Herstellernamens Namenskonflikte. Beispielsweise können zwei verschiedene Personen eine Bibliothek mit demselben Namen wie igorw/json und seldaek/json erstellen.

Hier erfahren Sie mehr über das Veröffentlichen von Paketen und die Benennung von Paketen

Beachten Sie, dass Sie auch „Plattformpakete“ als Abhängigkeiten angeben können, wodurch Sie einige Versionen der Serversoftware anpassen können

Einschränkungen der Paketversion unten

Im obigen Beispiel ist die von uns eingeführte Monolog-Version als 1.0.* angegeben. Dies bedeutet, dass jeder Entwicklungszweig ab 1.0 mit Versionen größer als übereinstimmt oder gleich 1,0 und kleiner als 1,1

Weitere Informationen zu Versionen, deren Beziehung zueinander oder zur Versionskontrolle finden Sie hier.

Wie lädt Composer die richtige Datei herunter? Wenn Sie in „composer.json“ eine Abhängigkeit angeben, ruft Composer zunächst den Namen des von Ihnen angeforderten Pakets ab und sucht in allen Repositorys danach, die mit dem Bibliotheksschlüssel registriert wurden. Wenn Sie keine zusätzlichen Repositorys registrieren, oder dies nicht der Fall ist Wenn Sie in dem von Ihnen angegebenen Repository ein Paket mit diesem Namen finden, greift es auf Packagist zurück (Details unten), wenn Composer im Packager oder im Repository für das angegebene Paket gefunden wird, und verwendet die Versionierungsfunktion von Lesen Sie unbedingt das VCS des Pakets (d. h. Zweige und Tags), um die beste Übereinstimmung mit den von Ihnen angegebenen Versionseinschränkungen zu finden Composer gibt einen Fehler bezüglich der Paketstabilität aus. Die von Ihnen angegebene Version erfüllt möglicherweise nicht die standardmäßigen Mindeststabilitätsanforderungen. Bei der Suche nach gültigen Paketversionen in VCS werden nur stabile Versionen berücksichtigt.

Wenn Sie auch DEV erhalten möchten, Alpha-, Beta- oder RC-Versionen: Weitere Informationen zum Stable-Flag und zum Mindeststabilitätsschlüssel finden Sie auf der Schema-Seite.

Abhängigkeiten installieren

Verwenden Sie zum Installieren den Installationsbefehl die definierten Abhängigkeiten für Ihr Projekt

php composer.phar install
Führen Sie diesen Befehl aus, Composer wird je nach Situation auf eine der folgenden zwei Arten installiert

Nicht-composer.lock-Installation

Wenn Sie den Befehl noch nie zuvor ausgeführt haben, wird er nicht ausgeführt. Wenn die Datei „composer.lock“ angezeigt wird, analysiert Composer nur die Abhängigkeiten, die Sie in der Datei „composer.json“ aufgelistet haben, und lädt die neueste Version in das Herstellerverzeichnis Ihres Projekts herunter (Anbieter ist das reguläre Verzeichnis im Projekt, in dem der gesamte Code von Drittanbietern gespeichert ist). In unserem obigen Beispiel würden Sie am Ende alle Monolog-Quelldateien im Verzeichnis „vendor/monolog/monolog/“ finden. Wenn Monolog Abhängigkeiten aufweist, werden diese auch in „vendor/“ angezeigt.

Tipp:

Wenn Sie Git in Ihrem Projekt verwenden, möchten Sie möglicherweise „vendor“ zu .gitignore hinzufügen. Weil es albern erscheint, alle Pakete von Drittanbietern zum Repository hinzuzufügen.

Wenn Composer die Installation abschließt, schreibt es alle heruntergeladenen Pakete und genauen Versionsinformationen in die Datei „composer.lock“, um die Versionen von Drittanbieterpaketen im Projekt zu sperren. Sie sollten „composer.lock“ im Projekt-Repository platzieren, damit alle Mitglieder des Projekts auf die gleiche Version der Abhängigkeiten beschränkt werden können.

Verwenden Sie die Datei „composer.lock“ zur Installation

这里来到了第二种安装方式。如果你在运行 composer install 命令之前已经存在了 composer.lock 和 composer.json 文件, 这意味着你之前使用了 install 命令, 或者项目中的其他成员使用了 install 命令并将 composer.lock 文件提交至了项目中 (这是非常好的)。

无论使用哪种方式,存在 composer.lock 文件时使用 install 命令安装依赖时 composer.lock 都会解析并安装你在 composer.json 中所列出来的依赖,但是 Composer 会严格使用 composer.lock 文件列出来的版本来确保项目中的所有成员所安装的版本都是一致的。因此,你可以获得 composer.json 文件列出的所有文件,但是与此同时他们可能并不是最新的可用版本 (一些在 composer.lock 文件中列出的依赖可能会在这个文件创建之后释放了新的版本)。这个是设计上的,这样的设计可以确保你的项目不会因为一些依赖的改变而崩溃。

提交你的 composer.lock 文件至版本控制工具

将此文件提交至 VC 是非常重要的。因为它可以确保项目中的任何人使用的都是与你是完全一致的依赖。 你的 CI 服务器,生产服务器,团队的其他开发人员,所有人都使用的是相同的依赖项,这减轻了仅部署某些部分而引起错误的可能性。即使你独立开发,在你重新安装项目的 6 个月内,你的依赖项发布了许多新的版本,你依然可以确信你的依赖项是可用的。(请参阅下边有关使用 update 的命令。)

更新依赖到最新版本

如上所述,composer.lock 文件将阻止你自动获取最新依赖版本。如果要更新依赖到最新版本,使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新到 composer.lock 文件。(这相当于删除 composer.lock 文件并再次运行 install)。

php composer.phar update

注意:当执行 install 命令时,由于 composer.json 的更改可能影响到依赖解析而未更新 composer.lock ,Composer 将显示警告。

如果只是想安装或更新一个依赖,可以将它们列出来:

php composer.phar update monolog/monolog [...]

注意:对于库来说,没必要提交 composer.lock 文件,请参考:库 - 锁文件。

Packagist

Packagist 是 Composer 的主要资源库。一个 Composer 库基本上是一个包的源:一个你可以得到包的地方。

Packagist 的目标是成为一个任何人都可以使用的中央仓库。这意味着你可以 require 那里的任何包,无需指定 Composer 查找包的位置。

当你访问 Packagist 网站 (packagist.org),你可以浏览和搜索包。

建议使用 Composer 的开源项目在 Packagist 上发布包。虽然并不一定需要发布在 Packagist 上来被 Composer 使用,但是它能被其它的开发者更快的发现和采用。

平台包

Composer 将那些已经安装在系统上,但并不是由 Composer 安装的包视为虚拟的平台包。这包括 PHP 本身、PHP 扩展和一些系统库。

php 代表使用的 PHP 版本要求,允许你应用限制,例如 ^7.1 。如果需要 64 位版本的 PHP, 你可以使用 php-64bit 进行限制。

hhvm 代表 HHVM 运行环境的版本,并且允许你应用限制 ,例如,^2.3。

ext- 允许你依赖 PHP 扩展(包括核心扩展)。通常 PHP 拓展的版本可以是不一致的,将它们的版本约束为 * 是一个不错的主意。一个 PHP 扩展包的例子是:ext-gd。

lib- 允许对 PHP 库的版本进行限制。以下可用例子: curl, iconv, icu,libxml,openssl, pcre, uuid, xsl。

你可以使用命令 show --platform 去获取你本地可用的平台包。

自动加载

为了描述包的自动加载信息, Composer 会生成一个 vendor/autoload.php 文件,你可以简单的 include 这个文件,并在无需其它额外工作的情况下就可以使用这些包所提供的类:

require __DIR__ . '/vendor/autoload.php';
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');

你甚至可以在 composer.json 中添加一个 autoload 指令,来添加自己的自动加载声明

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}

Composer 会为 Acme 命名空间注册一个 PSR-4 的自动加载.

你定义一个命名空间指向目录的映射。 在 vendor 目录同级的 src 目录将成为你项目的根目录。一个案例,文件名 src/Foo.php 需包含 AcmeFoo 类。

添加 autoload 指令之后,你必需重新运行 dump-autoload 来重新生成 vendor/autoload.php 文件。

包含此文件后也可以接收到一个 autoloader 实例,由因此您可以将 include 调用的返回值存储在变量中并添加更多名称空间,这在测试套件中将会很有用,例如:

$loader = require DIR . '/vendor/autoload.php';
$loader->addPsr4('Acme\Test\', __DIR__);

作为 PSR-4 自动加载规范的补充,Composer 也支持 PSR-0、类表、文件清单的自动加载方式。具体请查询 autoload 引用。

你也可以查阅 optimizing the autoloader 了解关于自动加载器的优化.

注意:

Composer 提供自己的加载器,但如果你不想使用那个而想自己配置加载器的话,你可以试试 include vendor/composer/autoload_*.php 这些文件所返回的关联数组来实现。

Das obige ist der detaillierte Inhalt vonTutorial zur Composer-Nutzung (grundlegende Verwendung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:aliyun. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Verwenden von DICR/YII2-Google zur Integration von Google API in YII2Verwenden von DICR/YII2-Google zur Integration von Google API in YII2Apr 18, 2025 am 11:54 AM

VPROCESSERAZRABOTKIVEB-ENTLEGEN, мненеришшшо & лносsprechen, LeavallySumballanceFriablanceFaumdoptomatification, čtookazalovnetakprosto, Kakaožidal.Posenesko

So verwenden Sie Komponist, um Probleme bei der Überprüfung von JSON -Schema zu behebenSo verwenden Sie Komponist, um Probleme bei der Überprüfung von JSON -Schema zu behebenApr 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.

Verwenden Sie den Komponisten, um das Dilemma von Empfehlungssystemen zu lösen: Andres-Montanez/Empfehlungen-BundleVerwenden Sie den Komponisten, um das Dilemma von Empfehlungssystemen zu lösen: Andres-Montanez/Empfehlungen-BundleApr 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 ComposerSo erstellen Sie schnell Fecmall Advanced Project Templates mit ComposerApr 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

Verbesserung der Serialisierungseffizienz der Doktrin: Anwendung von Sidus/Doctrin-Serializer-BundleVerbesserung der Serialisierungseffizienz der Doktrin: Anwendung von Sidus/Doctrin-Serializer-BundleApr 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.

Verwenden Sie Komponist, um Fehlerprotokollierungsprobleme in Laravel -Projekten zu behebenVerwenden Sie Komponist, um Fehlerprotokollierungsprobleme in Laravel -Projekten zu behebenApr 18, 2025 am 11:39 AM

Bei der Entwicklung von Laravel -Projekten ist die Verwaltung von Fehlerprotokollen ein sehr kritischer Link. Vor kurzem habe ich in meinem Projekt auf ein Problem gestoßen: So erfassen und zeichnen Sie alle Arten von Fehlern effizient auf und stellen Sie sicher, dass diese Fehlermeldungen rechtzeitig verarbeitet werden können. Nach einigen Nachforschungen fand ich das LUKEBOY25/ERRAGENLOGGER -PAKET. Es wird über Composer installiert und kann den Verwaltungsprozess von Fehlerprotokollen erheblich vereinfachen. Sie können Komponist über die folgende Adresse lernen:

So verwenden Sie Komponist, um die Sicherheit von Laravel-Anwendungen zu verbessern: Anwendungen der Wahrbenieuwenhuis/Laravel-2FA-BibliothekSo verwenden Sie Komponist, um die Sicherheit von Laravel-Anwendungen zu verbessern: Anwendungen der Wahrbenieuwenhuis/Laravel-2FA-BibliothekApr 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.

Verwenden Sie den Komponisten, um die Erkennung von Mobilgeräten zu vereinfachen und die Größenberechnungen für Dateien herunterzuladenVerwenden Sie den Komponisten, um die Erkennung von Mobilgeräten zu vereinfachen und die Größenberechnungen für Dateien herunterzuladenApr 18, 2025 am 11:33 AM

Bei der Entwicklung einer Website habe ich auf ein gemeinsames, aber schwieriges Problem gestoßen: So ermitteln Sie den Art des Benutzerzugriffsgeräts genau und wie Sie schnell die Download -Größe einer Datei erhalten. Diese Funktionen mögen einfach erscheinen, müssen jedoch bei der Implementierung mit vielen Details und Kompatibilitätsproblemen befassen. Nach einigen Erkundungen entdeckte ich das Komponist -Paket Weizhang/Utilities, das eine einfache und effektive Lösung bietet.

See all articles

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)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)