5 Composer-Tipps, die PHP-Entwickler kennen sollten
Composer ist eine neue Generation von PHP-Abhängigkeitsmanagement-Tools. In diesem Artikel werden fünf Tipps für die Verwendung von Composer vorgestellt, um Ihre PHP-Entwicklung komfortabler zu gestalten.
1. Nur eine einzelne Bibliothek aktualisieren
Sie möchten nur eine bestimmte Bibliothek aktualisieren und nicht alle seine Abhängigkeiten, was sehr schwierig ist. Einfach
composer update foo/bar
Darüber hinaus kann dieser Trick auch verwendet werden, um „Probleme mit Warnmeldungen“ zu lösen. Sie müssen Warnmeldungen wie diese gesehen haben:
Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them.
Was ist schief gelaufen? Keine Panik! Wenn Sie „composer.json“ bearbeiten, sollten Sie so etwas sehen. Wenn Sie beispielsweise Details wie eine Bibliotheksbeschreibung, einen Autor, weitere Parameter oder auch nur ein Leerzeichen hinzufügen oder aktualisieren, ändert sich dadurch die MD5-Summe der Datei. Composer warnt Sie dann, dass der Hash-Wert sich von dem in Composer.lock aufgezeichneten unterscheidet.
Was sollen wir also tun? Der Update-Befehl kann die Sperrdatei aktualisieren, aber wenn er nur einige Beschreibungen hinzufügt, sollte er keine Bibliotheken aktualisieren. In diesem Fall aktualisieren Sie einfach nichts:
$ composer update nothing Loading composer repositories with package information Updating dependencies Nothing to install or update Writing lock file Generating autoload files
Auf diese Weise aktualisiert Composer nicht die Bibliothek, sondern Composer.lock. Beachten Sie, dass „nothing“ kein Schlüsselwort im Update-Befehl ist. Es gibt einfach nichts, was dieses Paket verursacht. Wenn Sie foobar eingeben, ist das Ergebnis dasselbe.
Wenn die von Ihnen verwendete Composer-Version neu genug ist, können Sie die Option --lock direkt verwenden:
composer update --lock
2. Installieren Sie die Bibliothek, ohne Composer.json zu bearbeiten
Es könnte für Sie zu mühsam sein, „composer.json“ jedes Mal zu ändern, wenn Sie eine Bibliothek installieren. Dann können Sie den Befehl „require“ direkt verwenden.
composer require "foo/bar:1.0.0"
Diese Methode kann auch verwendet werden, um schnell ein neues Projekt zu öffnen. Der Befehl init verfügt über die Option --require, mit der Composer.json automatisch geschrieben werden kann: (Beachten Sie, dass wir -n verwenden, damit wir die Frage nicht beantworten müssen)
$ composer init --require=foo/bar:1.0.0 -n $ cat composer.json { "require": { "foo/bar": "1.0.0" } }
3 ist einfach
Haben Sie während der Initialisierung den Befehl „create-project“ ausprobiert?
composer create-project doctrine/orm path 2.2.0
Dadurch wird das Repository automatisch geklont und die angegebene Version ausgecheckt. Dieser Befehl ist beim Klonen einer Bibliothek sehr praktisch, da nicht nach dem Original-URI gesucht werden muss.
4. Erwägen Sie das Caching, geben Sie den Dist-Paketen Vorrang
Composer aus dem letzten Jahr archiviert automatisch das von Ihnen heruntergeladene Dist-Paket. Standardmäßig wird das dist-Paket für getaggte Versionen wie „symfony/symfony“: „v2.1.4“ oder Platzhalter oder Versionsbereiche „2.1.*“ oder „>=2.2,<2.3-dev“ verwendet. (wenn Sie „stable“ als Mindeststabilität verwenden).
Das dist-Paket kann auch für Zweige verwendet werden, z. B. mit dev-master können Sie das komprimierte Paket einer bestimmten Git-Referenz herunterladen. Um die Verwendung eines Tarballs zu erzwingen, anstatt den Quellcode zu klonen, können Sie die Option --prefer-dist von install und update verwenden.
Hier ist ein Beispiel (ich habe die Option --profile verwendet, um die Ausführungszeit anzuzeigen):
$ composer init --require="twig/twig:1.*" -n --profile Memory usage: 3.94MB (peak: 4.08MB), time: 0s $ composer install --profile Loading composer repositories with package information Installing dependencies - Installing twig/twig (v1.12.2) Downloading: 100% Writing lock file Generating autoload files Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s $ rm -rf vendor $ composer install --profile Loading composer repositories with package information Installing dependencies from lock file - Installing twig/twig (v1.12.2) Loading from cache Generating autoload files Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s
Hier wird das komprimierte Paket von twig/twig:1.12.2 in ~/ gespeichert. Composer /cache/files/twig/twig/1.12.2.0-v1.12.2.zip. Verwenden Sie es direkt bei der Neuinstallation des Pakets.
5. Wenn Sie zuerst den Quellcode ändern möchten
Wenn Sie die Bibliothek ändern müssen, ist das Klonen des Quellcodes bequemer als das Herunterladen des Pakets. Sie können --prefer-source verwenden, um die Auswahl des Klon-Quellcodes zu erzwingen.
composer update symfony/yaml --prefer-source
Als Nächstes können Sie die Datei ändern:
composer status -v You have changes in the following dependencies: /path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml: M Dumper.php
Wenn Sie versuchen, eine geänderte Bibliothek zu aktualisieren, werden Sie von Composer daran erinnert und gefragt, ob Sie die Änderung abbrechen möchten:
$ composer update Loading composer repositories with package information Updating dependencies - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0) The package has modified files: M Dumper.php Discard changes [y,n,v,s,?]?</p> <p> Bereiten Sie vor für die Produktionsumgebung </p> <p>Abschließend vergessen Sie beim Bereitstellen von Code in der Produktionsumgebung nicht, das automatische Laden zu optimieren: </p> <pre class="brush:php;toolbar:false">composer dump-autoload --optimize
Sie können bei der Installation von Paketen auch den Autoloader --optimize- verwenden. Ohne diese Option kann es zu einem Leistungsverlust von 20 bis 25 % kommen.
Weitere technische Artikel zum Thema Komponisten finden Sie in der Rubrik Komponisten! !
Das obige ist der detaillierte Inhalt von5 Composer-Tipps, die PHP-Entwickler kennen sollten. 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



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.

Artikelzusammenfassung: Dieser Artikel enthält detaillierte Schritt-für-Schritt-Anweisungen, um die Leser zu leiten, wie das Laravel-Framework einfach installiert werden kann. Laravel ist ein leistungsstarkes PHP -Framework, das den Entwicklungsprozess von Webanwendungen beschleunigt. Dieses Tutorial deckt den Installationsprozess von den Systemanforderungen bis zur Konfiguration von Datenbanken und das Einrichten von Routing ab. Durch die Ausführung dieser Schritte können die Leser schnell und effizient eine solide Grundlage für ihr Laravel -Projekt legen.

Ich habe ein schwieriges Problem bei der Entwicklung eines neuen Laravel-Projekts gestoßen: So erstellen Sie schnell ein voll funktionsfähiges und einfach zu verwaltetes Inhaltsverwaltungssystem (CMS). Ich habe mehrere Lösungen ausprobiert, aber alle haben aufgrund komplexer Konfiguration und unbequemer Wartung aufgegeben. Bis ich das LaravelCMS-Paket MKI-Labs/Espresso entdeckte, das nicht nur einfach zu installieren, sondern auch leistungsstarke Funktionen und intuitive Verwaltungsschnittstellen bietet, die mein Problem vollständig gelöst haben.

Ich habe ein schwieriges Problem bei der Entwicklung einer komplexen Webanwendung: So behandeln Sie JavaScript -Fehler effektiv und protokollieren Sie sie. Ich habe mehrere Methoden ausprobiert, aber keiner von ihnen konnte meine Bedürfnisse erfüllen, bis ich diese Bibliothek Dvasilenko/Alterego_tools fand. Ich habe dieses Problem durch die Installation dieser Bibliothek durch Komponist leicht gelöst und die Wartbarkeit und Stabilität des Projekts erheblich verbessert. Komponist kann über die folgende Adresse gelernt werden: Lernadresse

Bei der Entwicklung eines großen PHP -Projekts habe ich ein häufiges, aber schwieriges Problem gestoßen: So verwalten und injizieren Sie Abhängigkeiten effektiv. Zunächst habe ich versucht, globale Variablen und manuelle Injektion zu verwenden, dies erhöhte jedoch nicht nur die Komplexität des Codes, sondern führte auch leicht zu Fehlern. Schließlich habe ich dieses Problem erfolgreich gelöst, indem ich die PSR-11-Containerschnittstelle und die Leistung des Komponisten verwendete.

Während der Entwicklung sind häufig HTTP -Anfragen erforderlich, um Daten zu erhalten, Daten zu senden oder mit externen APIs zu interagieren. Wenn jedoch komplexe Netzwerkumgebungen konfrontiert und die Anforderungen an die Anforderung konfrontiert sind, wird die effiziente Bearbeitung von HTTP -Anforderungen zur Herausforderung. Ich habe ein Problem in einem Projekt gestoßen: Ich muss häufig Anfragen an verschiedene APIs senden und die Anfragen protokollieren, um die nachfolgende Debugging und Analyse zu erleichtern. Nachdem ich mehrere Methoden ausprobiert hatte, entdeckte ich die Yiche/HTTP -Bibliothek. Es vereinfacht nicht nur die Verarbeitung von HTTP -Anforderungen, sondern bietet auch dynamische Protokollierungsfunktionen, wodurch die Entwicklungseffizienz stark verbessert wird.

Bei der Entwicklung von YII -Framework -Projekten begegnen Sie häufig Situationen, in denen Sie eine große Datenmenge aus der Datenbank erhalten müssen. Wenn nicht geeignete Maßnahmen ergriffen werden, kann das direkte Erhalten aller Daten einen Speicherüberlauf verursachen und die Programmleistung beeinflussen. Kürzlich, als ich ein Projekt auf einer großen E-Commerce-Plattform zu tun hatte, habe ich dieses Problem gestoßen. Nach einiger Forschung und Versuch löste ich das Problem schließlich über die Erweiterungsbibliothek von Pavle/Yii-Batch-Result.

Bei der Entwicklung eines staatlichen Website -Projekts habe ich auf ein schwieriges Problem gestoßen: wie die Zugänglichkeit der Website verbessert werden kann, um die Anforderungen verschiedener Benutzer zu erfüllen, insbesondere für sehbehinderte Benutzer, das Navigieren und Betrieb auf der Website kann sehr schwierig sein. Nachdem ich mehrere Methoden ausprobiert hatte, fand ich eine JavaScript -Bibliothek namens FlyingFocus, die die Zugänglichkeit der Website erheblich verbessert. Es ist jedoch eine Herausforderung, es in die Silverstripe -Website zu integrieren. Glücklicherweise fand ich das Dia-NZ/Silverstripe-Focus-Modul, das den Integrationsprozess von FlyingFocus vereinfachte und mein Puzzle löste.
