suchen
HeimEntwicklungswerkzeugecomposerAusführliche Erklärung, wie Composer+Git eine „Service-Klassenbibliothek' erstellt

Dieser Artikel wurde von composerTutorial-Kolumne geschrieben, um Ihnen vorzustellen, wie Composer Git kombiniert, um eine „Service-Klassenbibliothek“ zu erstellen. Ich hoffe, dass er Freunden in Not hilfreich sein wird!

Einführung

Ich habe immer geglaubt, dass PHP mittlerweile auch im technischen Bereich Einzug gehalten hat. In der Vergangenheit betrachteten PHP-Entwickler Geschwindigkeit als Schönheit, und Geschwindigkeit und Skalierbarkeit waren immer widersprüchlich. Heutige PHP-Projekte, insbesondere größere Projekte, haben sich nach und nach auf ein Niveau entwickelt, das sowohl Ingenieurskunst als auch Skalierung erfordert. Einen Code zu entwickeln bedeutet, sich zu einer immer komplexeren Architektur zu entwickeln. Für komplexe Architekturen sind Microservices oft eine gute Wahl.

Ich brauchte diese Frage in einem aktuellen Projekt. Ich muss einen Kartendienst entwickeln, der natürlich nicht in Form einer einfachen Klassenbibliothek vorliegt, sondern über eine eigene Datenbank und eine eigene Dienstschnittstelle verfügt. In diesem Fall ist die Servitisierung die beste Option. Natürlich gibt es viele Möglichkeiten für den Service, z. B. Thrift, HTTP usw. Aber ich habe die aktuelle Abteilungsumgebung bewertet, und der Fortschritt meines Projekts ist auch relativ eng. In meinen Augen verwenden Thrift, HTTP und andere Methoden alle Netzwerkprotokolle, um eine Dienstentkopplung zu erreichen Lösung. Ich denke, dieser Ansatz ist nicht notwendig, wenn sich das Projekt nicht eindeutig in einem kritischen Zustand befindet. Der Nachteil der Verwendung von Netzwerkprotokoll-Servitization besteht darin, dass sie eine erhebliche Komplexität mit sich bringt. Diese Komplexität erfordert oft Investitionen in Arbeitskräfte, materielle Ressourcen und Zeit. Daher hoffe ich, eine „Service-Klassenbibliothek“ in der PHP-Sprache für die Entwicklung bereitstellen zu können.

Woran ich denke, ist der Composer von PHP.

Composer-Änderung

Dienstbibliothek erstellen

Zunächst muss ich meine „Dienstbibliothek“ von meiner Anwendung (mit dem Namen xxx/main1) trennen, anstatt ein Verzeichnis darin zu erstellen die Anwendung (tatsächlich habe ich darüber nachgedacht, ein Verzeichnis wie „Dienste“ zu erstellen). Wenn der Code jedoch mit dem Geschäftsprogramm gekoppelt ist, ist es meiner Meinung nach aufgrund der menschlichen Faulheit schwierig, sich von Anfang bis Ende zu beherrschen und darauf zu bestehen, verschiedene praktische Funktionen in der Anwendung nicht zu verwenden. Daher habe ich die Wahl, ein neues Projekt im Git-Repository zu erstellen und es xxx/mapService zu nennen.

composer.json

Jetzt gibt es zwei Git-Projekte (xxx/main1 und xxx/mapService). Ich habe die folgende Anweisung zur Datei „composer.json“ in „main1“ hinzugefügt:

Ausführliche Erklärung, wie Composer+Git eine „Service-Klassenbibliothek erstellt

Und in der Datei „composer.json“ von mapService Wie folgt:

Ausführliche Erklärung, wie Composer+Git eine „Service-Klassenbibliothek erstellt

Diese Konfiguration teilt dem main1-Projekt, der Git-Adresse von mapService und der Version mit, die verwendet werden muss.

Natürlich müssen Sie auf folgende Punkte achten:

  • dev-master bedeutet, dass Sie direkt den Master-Zweig von mapService verwenden. Wenn MapService über andere Tags verfügt, können Sie die Tag-Informationen hier verwenden.
  • repositories ist die Adresse des Projekts.
  • Der Dienst, den ich hier habe, wird auf dem von unserer Firma erstellten GitLab platziert.
  • Der Namespace des src-Ordners unter mapService Für xxxx \xxxx\MapService\ und unterstützt PSR-4
  • mapService verwendet illuminate/database

Verwenden Sie abschließend das Composer-Update -vvv, um den von uns benötigten MapService herunterzuladen und im Anbieterverzeichnis abzulegen.

Aktualisierungen und Änderungen

Unser aktueller Editor befindet sich im Haupt1-Projekt. Wenn wir das MapService-Projekt bearbeiten oder ändern und es in den Master-Zweig von MapService einbinden möchten, können wir direkt das Verzeichnis vender/xxx/mapService eingeben. Führen Sie Operationen aus, die Git entsprechen. Dies ermöglicht direkte Codeänderungen.

Unabhängige Konfiguration

Diese strukturelle Kombination ist nur der erste Schritt zur Vollendung des langen Marsches von Tausenden von Kilometern. Was später noch wichtiger ist, ist, dass ich beim Schreiben dieses Dienstes immer daran denken muss, nicht alles in main1 zu verwenden, um die Unabhängigkeit von mapService zu wahren (Unabhängigkeit ist eine der notwendigen Bedingungen für die Servitisierung). Das erste Problem, auf das ich stieß, war beispielsweise, dass die Konfigurationsdatei unabhängig sein muss.

Meine Implementierungsmethode besteht darin, eine Config-Klasse direkt in mapService zu erstellen und die Konfiguration direkt in diese Klasse zu schreiben.

Ich hatte immer das Gefühl, dass die Implementierung dieser Konfigurationsdatei etwas frustrierend ist, da diese Konfigurationsdatei auf diese Weise in die Git-Bibliothek gelangt. Aber ich kann mir wirklich keine bessere Lösung vorstellen. In Laravel gibt es eine Möglichkeit, Config im Konfigurationsordner von Laravel zu erstellen, indem ServiceProvider implementiert wird. Diese Methode gilt jedoch nur für Laravel. Es gibt keine Universalität. Andererseits denke ich, dass die vom Dienst verwendete Datenbank selbst Teil des Dienstes ist und anscheinend nichts damit zu tun hat, sie in die Git-Bibliothek des Dienstes aufzunehmen.

Verzeichnisstruktur

Ausführliche Erklärung, wie Composer+Git eine „Service-Klassenbibliothek erstellt

Die Verzeichnisstruktur ist wie oben.

  • Configs stellt Konfigurationsdateien bereit.
  • Contracts stellt Schnittstellenprotokolle bereit Interaktion mit der Datenbank
  • Node.php implementiert eine bestimmte Schnittstelle
  • Das Wichtigste am Dienst ist das Schnittstellenprotokoll. Erstellen Sie also einen Vertragsordner und verbinden Sie die bereitgestellten Dienste.
Die Ausnahmebehandlung der Schnittstelle sollte versuchen, Ausnahmen anstelle von Fehlercodes für die Interaktion zu verwenden. Und diese Ausnahmen sollten so weit wie möglich angepasst werden. Dadurch besteht die Möglichkeit einer einheitlichen Bearbeitung auf der oberen Ebene.

DenkenAusführliche Erklärung, wie Composer+Git eine „Service-Klassenbibliothek erstellt

Ich positioniere dieses Architekturmodell als serviceorientiertes Modell auf der PHP-Codeebene. Anwendbare Szenarien sollten sein:

Spätere dienstleistungsbasierte Planung

Szenarien, in denen frühe Arbeitskräfte und Denkweisen eine schnelle Entwicklung aufrechterhalten wollen

  • Der Unterschied zwischen Gits SubTree und SubModule
  • Tatsächlich sind diese drei Methoden gleich das Ende Verwenden Sie ein Projekt als Klassenbibliothek für ein anderes Projekt. SubTree und SubModule sind Git-Lösungen. Composer ist eine Lösung für die PHP-Sprache. Neben der Funktion zum Hinzufügen eines Projekts zu einem anderen Projekt bietet es auch Lösungen wie das Hinzufügen von Versionen und Abhängigkeitslösungen. Wenn Ihr Projekt in PHP ist, ist die Verwendung von Composer zweifellos die bessere Wahl.

Spätere Protokollserviceisierung

Wenn mein MapService später protokollserviceorientiert sein möchte, kann dieses MapService-Projekt in ein SDK vereinfacht werden. Für die Geschäftslogik der oberen Ebene verwenden Sie einfach Composer Update, um es zu aktualisieren.

Service-Registrierung und -Erkennung

Was ich hier „Service-Klassenbibliothek“ nenne, löst das Problem der Service-Registrierung nicht. Ich habe keine Möglichkeit zu wissen, wie viele Projekte meinen Service nutzen. Dies kann zusätzliche Prozessarbeit erfordern.

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie Composer+Git eine „Service-Klassenbibliothek' erstellt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:juejin. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Komponist: Straffung von PHP -ProjektentwicklungKomponist: Straffung von PHP -ProjektentwicklungApr 15, 2025 am 12:08 AM

Der Komponist vereinfacht die PHP -Projektentwicklungsschritte, darunter: 1) Hinzufügen von Abhängigkeiten, z. B. Hinzufügen von "Laravel/Framework": "^8.0" in Composer.json; 2) automatisch laden, generieren Sie eine autoload.php -Datei, indem der Namespace und der Klassenpfad definiert werden. 3) Optimierung der Leistung unter Verwendung von CompoSerDump-Autoload-O und CompoSerinstall-no-dev-optimize-autoloaderbefehl. Durch diese Schritte können Entwickler effizienter sein und häufige Fehler vermeiden.

Komponisten -Anmeldeinformationen: Was macht jemanden zu einem Komponisten?Komponisten -Anmeldeinformationen: Was macht jemanden zu einem Komponisten?Apr 14, 2025 am 12:13 AM

Zu den Schlüsselelementen eines Komponisten gehören: 1. Mastering -Musiktheorie, 2. kreativ und originell, 3. technische Fähigkeiten, 4., um Emotionen auszudrücken und Geschichten zu erzählen.

Der Weg zum Komponisten: ein praktischer LeitfadenDer Weg zum Komponisten: ein praktischer LeitfadenApr 13, 2025 am 12:11 AM

Zu den Schritten zum Komponisten gehören: 1. Master die grundlegenden Elemente der Musik, wie Notizen, Rhythmus, Harmonie und Melodie; 2. Wählen Sie geeignete technische Tools wie AbletonLive aus; 3.. Verstehen Sie den Prozess des Komponierens, einschließlich Inspirationsakquisition, Konzeption, Schreiben, Änderung und Verbesserung; 4. Beginnen Sie mit einer einfachen Melodieerstellung und probieren Sie allmählich komplexe Techniken wie Harmonie aus. 5. Lösen Sie gemeinsame Probleme durch Debugging -Techniken wie Auswahl der Notiz und Rhythmusanordnung; 6. Wenden Sie Leistungsoptimierung und Best Practices an, z. B. Vorlagen, Versionskontrolle und Zusammenarbeit.

Komponist: Der Schlüssel zum Aufbau robuster PHP -AnwendungenKomponist: Der Schlüssel zum Aufbau robuster PHP -AnwendungenApr 12, 2025 am 12:05 AM

Composer ist ein wichtiges Instrument zum Erstellen von robusten PHP -Anwendungen, da es das Abhängigkeitsmanagement vereinfacht, die Entwicklungseffizienz und die Codequalität verbessert. 1) Composer definiert Projektabhängigkeiten über die Composer.json -Datei und lädt diese Abhängigkeiten automatisch herunter und verwaltet sie. 2) Es generiert eine Composer.lock -Datei, um sicherzustellen, dass die Abhängigkeitsversion konsistent ist und automatisch über Anbieter/autoload.php geladen wird. 3) Beispiele für die Nutzung sind grundlegende Nutzung wie das Hinzufügen von Protokollbibliotheken sowie die erweiterte Nutzung wie Versionsbeschränkungen und Umgebungsvariablenverwaltung. 4) Zu den allgemeinen Fehler -Debugging -Techniken gehören Abhängigkeitskonflikte und Netzwerkprobleme. 5) Vorschläge zur Leistungsoptimierung umfassen die Verwendung von Composer.lock -Datei und Optimierung der automatischen Laden.

Komponist -Expertise: Was macht jemanden qualifiziertKomponist -Expertise: Was macht jemanden qualifiziertApr 11, 2025 pm 12:41 PM

Um bei der Verwendung von Composer kompetent zu werden, müssen Sie die folgenden Fähigkeiten beherrschen: 1. Fachkenntnis, um Composer.json und Composer.lock -Dateien zu verwenden.

Was macht ein Komponist?Was macht ein Komponist?Apr 08, 2025 am 12:19 AM

Composer ist ein Abhängigkeitsmanagement -Tool für PHP, das zum Deklarieren, Herunterladen und Verwalten von Projektabhängigkeiten verwendet wird. 1) Deponieren Sie Abhängigkeiten über Composer.json-Datei, 2) Installieren Sie Abhängigkeiten mit dem Befehl compoSerinstall, 3) Analysieren Sie den Abhängigkeitsbaum und laden Sie ihn von Packagist herunter, 4) Generieren Sie die automatische Datei autoload.php, um die automatische Laden zu vereinfachen.

Was ist App Composer?Was ist App Composer?Apr 07, 2025 am 12:07 AM

AppComposer ist ein Tool zum Erstellen und Verwalten von Anwendungen. 1) Sie vereinfacht die Anwendungsentwicklung und verbessert die Effizienz durch Ziehen und Konfigurieren vordefinierter Komponenten. 2) Entwickler können Komponenten definieren, Schnittstellen kombinieren, die Geschäftslogik definieren und letztendlich die Anwendung rendern. 3) Unterstützung der grundlegenden und fortgeschrittenen Nutzung, wie z. B. Aufgabenmanagement und bedingtes Rendering, wodurch flexible Anwendungen erstellt werden.

Wofür wird ein Komponist verwendet?Wofür wird ein Komponist verwendet?Apr 06, 2025 am 12:02 AM

Composer ist ein Abhängigkeitsmanagement -Tool für PHP. Zu den Kernschritten für die Verwendung von Komponisten gehören: 1) Deponcies in Composer.json wie "Stripe/Stripe-Php": "^7.0"; 2) CompoSerinstall ausführen, um Abhängigkeiten herunterzuladen und zu konfigurieren. 3) Verwalten Sie Versionen und Autoloads über Composer.lock und autoload.php. Composer vereinfacht das Abhängigkeitsmanagement und verbessert die Projekteffizienz und -wartbarkeit.

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)
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

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

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen