Inhaltsverzeichnis
Start
automatisches Laden
Erfahren Sie mehr
Heim Backend-Entwicklung PHP-Tutorial So erstellen Sie Ihr erstes PHP -Paket

So erstellen Sie Ihr erstes PHP -Paket

Mar 06, 2025 am 01:38 AM

How to  Build Your First PHP Package

Möchten Sie ein PHP -Paket von Grund auf erstellen und es mit anderen PHP -Entwicklern teilen? Der Komponist, dieses Abhängigkeitsmanagement -Tool, macht diesen Prozess einfach! Dank des Komponisten hat PHP eines der Top -Paketökosysteme. Schauen wir uns einen tieferen Blick darauf an, wie PHP -Pakete Schritt für Schritt erstellen.

Start


Dieser Artikel richtet sich hauptsächlich auf PHP -Neulinge (oder PHP -Paket -Schreibanfänger) und zielt darauf ab, zu lernen, wie man PHP -Pakete von Grund auf neu erstellen.

Erstellen eines neuen PHP -Pakets erfordert die folgenden Aufgaben:

  • Initialisieren Sie das Git -Repository
  • erstellen und konfigurieren Sie composer.json Datei
  • Abhängigkeiten installieren
  • automatisches Laden
  • einstellen

Während wir zuerst ein leeres Github -Projekt erstellen und lokal klonen, erstellen wir einen neuen Ordner direkt lokal, das Projekt initialisieren und dann den Quellcode später in GitHub drücken:

$ mkdir example-package
$ cd ./example-package
$ git init
$ echo "/vendor/" >> .gitignore
$ composer init
$ git add .
$ git commit -m"第一次提交"
# 稍后您可以添加远程仓库并推送源代码
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Mit dem Befehl

composer init werden Sie dazu veranlasst, Projekte interaktiv einzurichten, Paketnamen, Autoren, Lizenzen usw. Werte festzulegen und nach Paketabhängigkeiten zu suchen. Sie können diese Informationen nach Belieben ausfüllen, aber aus Gründen der Kürze beginnen wir hier:

{
    "name": "laravelnews/feeds",
    "description": "获取Laravel-News.com的文章",
    "type": "library",
    "require": {}
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir haben die grundlegende Konfiguration des Pakets, aber es wird nicht viel Arbeit leisten. Wenn das Paket nur die Kern -PHP -Sprache verwendet, benötigen einige Pakete keine Abhängigkeiten. Unabhängig davon müssen Sie automatisches Laden einrichten, damit Ihre Paketbenutzer Funktionen und Klassen in ihren Projekten laden können.

Wenn Sie bereit sind, Ihre lokale Checkout an ein Versionskontrollsystem wie GitHub zu verbinden, können Sie die Anweisungen zum Hinzufügen eines Remote -Repositorys befolgen. Es kann dem folgenden Befehl ähnlich sein:

git remote add origin git@github.com:laravelnews/example-package.git
Nach dem Login kopieren
Nach dem Login kopieren

automatisches Laden

einstellen
Nach dem Erstellen des Basis

können wir den Quellcode weiter erstellen. Sie müssen entscheiden, wo der Quellcode in Ihrem Projekt gespeichert werden soll. Ordner können nach Belieben benannt werden, aber der typische "Standard" ist composer.json oder src/. Composer kümmert sich nicht darum, welchen Pfad Sie verwenden, aber Sie müssen den Komponisten anweisen, die Datei automatisch mit PSR-4 zu laden. Verwenden wir den Ordner lib/ und erstellen Sie eine Klasse für unser Beispielpaket: src

$ mkdir src/
$ touch src/Api.php
Nach dem Login kopieren
Nach dem Login kopieren
Öffnen Sie als nächstes die Datei

und verwenden Sie die Taste composer.json, um den Autoloader zu konfigurieren: "autoload"

Die Eigenschaften in der
{
    "name": "laravelnews/feeds",
    "description": "获取Laravel-News.com的文章",
    "type": "library",
    "require": {},
    "autoload": {
        "psr-4": {
            "LaravelNews\Feed\": "src/"
        }
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

Tasten Sie den PHP -Namespace in einen Ordner. Wenn wir Dateien im Ordner autoload.psr-4 erstellen, werden sie dem src -Namespace zugeordnet. In diesem Beispiel erstellen wir eine LaravelNewsFeed -Datei, die einen Laravel News JSON -Feed anfordert und zurückgibt. Wenn Sie lernen, fügen Sie den folgenden Code zu Api.php: src/Api.php hinzu

<?php namespace LaravelNews\Feed;

class Api
{
    public function json(): array
    {
        $json = file_get_contents('https://laravel-news.com/feed/json');

        return json_decode($json, true);
    }
}
Nach dem Login kopieren
Nach dem Login kopieren
Wie probieren wir unsere neue Klasse sofort aus?

Es gibt verschiedene Möglichkeiten, beispielsweise dieses Paket in einem anderen Projekt über eine lokale Komponist -Abhängigkeit zu verlangen und den Code sogar in GitHub zu drücken und dev-main in unserem Paket auszuführen. Wir können es jedoch auch versuchen, indem wir eine composer update -Datei im Stammverzeichnis des Projekts erstellen: index.php

$ mkdir example-package
$ cd ./example-package
$ git init
$ echo "/vendor/" >> .gitignore
$ composer init
$ git add .
$ git commit -m"第一次提交"
# 稍后您可以添加远程仓库并推送源代码
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Wir haben den Autoloader des Komponisten verwendet, der weiß, wie die Dateien unseres Pakets geladen werden. Damit der Komponist versteht, wie wir unsere Dateien finden, müssen wir

: composer install ausführen

{
    "name": "laravelnews/feeds",
    "description": "获取Laravel-News.com的文章",
    "type": "library",
    "require": {}
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Sie können den Befehl

auch ausführen, nachdem der Namespace zu composer.json hinzugefügt wird, um den Autoloader des Komponisten zu aktualisieren. dump-autoload

Führen Sie die Datei

aus, ermöglicht es uns, unsere Pakete schnell zu verwenden. Wir können jedoch auch unseren Code verwenden, indem wir eine Testsuite erstellen. Lassen Sie uns darüber nachdenken, wie man es eingerichtet hat! index.php

Pakettest- und Entwicklungsabhängigkeiten


Ich empfehle, Tests für jedes Projekt zu schreiben, an dem Sie beteiligt sind, und ich möchte so früh wie möglich Tests einrichten. Das häufigste Test -Framework beim Erstellen von PHP -Paketen ist Phpunit. Meine Lieblingsauswahl in letzter Zeit ist Pest PHP, und ich denke, Sie werden es lieben, wie einfach es zu errichten ist!

Das Paket

Composer enthält zwei Anforderungen an: Das

-Teil enthält die für das Paket erforderlichen Pakete, und das require -Teil enthält die für den Test erforderlichen Pakete. Bisher haben wir keine require-dev Pakete, die passieren können, wenn Sie keine anderen Paketabhängigkeiten benötigen. require

Ich bezweifle, dass Sie Ihr eigenes Test -Framework nicht von Grund auf neu schreiben möchten. Daher sind wir dabei, unsere erste Entwicklungsabhängigkeit zu installieren. Wir möchten auch nicht immer Anfragen an JSON-Endpunkte in Echtzeit stellen, daher werden wir auch eine Scheinbibliothek (Spott) installieren, um HTTP-Anrufe zu simulieren:

git remote add origin git@github.com:laravelnews/example-package.git
Nach dem Login kopieren
Nach dem Login kopieren
Tipp: Ich empfehle, die Paketsortierung mit den folgenden Konfigurationsoptionen in

zu konfigurieren, um die Abhängigkeiten organisiert zu halten: composer.json

$ mkdir src/
$ touch src/Api.php
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Installieren von Schädling und Spott können wir Schädlinge durch das

-Flag initialisieren. Nach dem Erstellen der Datei können wir --init ausführen, um unseren Code zu testen: pest

{
    "name": "laravelnews/feeds",
    "description": "获取Laravel-News.com的文章",
    "type": "library",
    "require": {},
    "autoload": {
        "psr-4": {
            "LaravelNews\Feed\": "src/"
        }
    }
}
Nach dem Login kopieren
Nach dem Login kopieren
Sie können die Tests des Pakets so organisieren, wie Sie es möchten, und ich empfehle Ihnen, die Schädlingsbekämpfung zu lesen, um alle Details zum Einrichten von Schädlingen zu finden.

Erstellen wir als nächstes eine einfache Klasse, mit der wir Pakettests demonstrieren können. Diese Klasse wird die neuesten Artikel aus den Laravel News JSON -Feed erhalten und zu den neuesten Artikeln zurückkehren.

Wir haben diese fiktive Klasse

benannt und mit dem folgenden Inhalt der Datei NewsChecker hinzugefügt: src/NewsChecker.php

<?php namespace LaravelNews\Feed;

class Api
{
    public function json(): array
    {
        $json = file_get_contents('https://laravel-news.com/feed/json');

        return json_decode($json, true);
    }
}
Nach dem Login kopieren
Nach dem Login kopieren
Beachten Sie, dass die

Klasse als Abhängigkeit dauert und wir sie in unseren Tests verspotten. Api

Als nächstes erstellen wir diese Datei in der Datei

und fügen den folgenden Test hinzu, um die tests/Feature/NewsCheckerTest.php -Methode zu überprüfen: latestArticle()

$ mkdir example-package
$ cd ./example-package
$ git init
$ echo "/vendor/" >> .gitignore
$ composer init
$ git add .
$ git commit -m"第一次提交"
# 稍后您可以添加远程仓库并推送源代码
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Sie können diese Tests ausführen und überprüfen, ob der Code durch Ausführen von vendor/bin/pest gültig ist. Sie können die Beispieltests löschen, die nach dem Ausführen pest --init wie Sie möchten.

Wir haben viele Dinge abgedeckt, von der Initialisierung von Git -Repositorys, der Konfiguration von PHP -Paketen mit composer.json, dem Hinzufügen von Quellcode und dem Testen und dem Ausführen von Schädlingen. Von hier aus können Sie Ihr Paket auf Packagist posten!

Erfahren Sie mehr


Ich empfehle Ihnen, sich anzumelden und die Dokumentation auf Packagist.org zu lesen, in der Sie eine neue Version des Pakets veröffentlichen. Der Prozess der Aktualisierung von Paketversionen auf Packagist kann automatisiert werden. Wenn Sie eine neue Version eines Pakets markieren, werden sie automatisch auf Packagist.org angezeigt.

Wir haben Schritt für Schritt über das Erstellen von Paketen von Grund auf gelernt. Wenn Sie jedoch GitHub verwenden, kann das Erstellen eines Vorlagen -Repositorys für Ihre Organisation oder persönliche Projekte schneller durchgeführt werden! Es gibt einige Community-Stellar-Paket-Frameworks, die als Ausgangspunkt für Ihr nächstes Composer-Paket verwendet werden können:

{
    "name": "laravelnews/feeds",
    "description": "获取Laravel-News.com的文章",
    "type": "library",
    "require": {}
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo erstellen Sie Ihr erstes PHP -Paket. 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)

Heiße Themen

Java-Tutorial
1662
14
PHP-Tutorial
1261
29
C#-Tutorial
1234
24
Erklären Sie verschiedene Fehlertypen in PHP (Hinweis, Warnung, tödlicher Fehler, analysieren Sie Fehler). Erklären Sie verschiedene Fehlertypen in PHP (Hinweis, Warnung, tödlicher Fehler, analysieren Sie Fehler). Apr 08, 2025 am 12:03 AM

Es gibt vier Hauptfehlertypen in PHP: 1. Nichts: Das geringste unterbrochen das Programm nicht, wie z. B. Zugriff auf undefinierte Variablen; 2. Warnung: Ernst als Bekanntmachung, wird das Programm nicht kündigen, z. B. keine Dateien; 3. FatalError: Das schwerwiegendste wird das Programm beenden, z. 4. Parseerror: Syntaxfehler verhindern, dass das Programm ausgeführt wird, z. B. das Vergessen, das End -Tag hinzuzufügen.

PHP und Python: Vergleich von zwei beliebten Programmiersprachen PHP und Python: Vergleich von zwei beliebten Programmiersprachen Apr 14, 2025 am 12:13 AM

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

Erklären Sie sicheres Kennwort -Hashing in PHP (z. B. password_hash, password_verify). Warum nicht MD5 oder SHA1 verwenden? Erklären Sie sicheres Kennwort -Hashing in PHP (z. B. password_hash, password_verify). Warum nicht MD5 oder SHA1 verwenden? Apr 17, 2025 am 12:06 AM

In PHP sollten die Funktionen für Passwort_Hash und passwart_verify verwendet werden, um sicheres Passwort -Hashing zu implementieren, und MD5 oder SHA1 sollte nicht verwendet werden. 1) Passwort_hash generiert einen Hash, der Salzwerte enthält, um die Sicherheit zu verbessern. 2) Passwort_Verify prüfen Sie das Passwort und sicherstellen Sie die Sicherheit, indem Sie die Hash -Werte vergleichen. 3) MD5 und SHA1 sind anfällig und fehlen Salzwerte und sind nicht für die Sicherheit der modernen Passwort geeignet.

PHP in Aktion: Beispiele und Anwendungen in realer Welt PHP in Aktion: Beispiele und Anwendungen in realer Welt Apr 14, 2025 am 12:19 AM

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.

Was sind HTTP -Anforderungsmethoden (erhalten, posten, setzen, löschen usw.) und wann sollte jeder verwendet werden? Was sind HTTP -Anforderungsmethoden (erhalten, posten, setzen, löschen usw.) und wann sollte jeder verwendet werden? Apr 09, 2025 am 12:09 AM

Zu den HTTP -Anforderungsmethoden gehören GET, Post, Put und Löschen, mit denen Ressourcen erhalten, übermittelt, aktualisiert und gelöscht werden. 1. Die GET -Methode wird verwendet, um Ressourcen zu erhalten, und eignet sich für Lesevorgänge. 2. Die Post -Methode wird verwendet, um Daten zu übermitteln und häufig neue Ressourcen zu erstellen. 3. Die Put -Methode wird zum Aktualisieren von Ressourcen verwendet und eignet sich für vollständige Updates. V.

PHP: Eine Schlüsselsprache für die Webentwicklung PHP: Eine Schlüsselsprache für die Webentwicklung Apr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

Wie kann PHP -Datei sicher sicher hochladen? Wie kann PHP -Datei sicher sicher hochladen? Apr 10, 2025 am 09:37 AM

PHP überlädt Datei -Hochladen über die Variable $ \ _ Dateien. Zu den Methoden zur Sicherstellung gehören: 1. Upload -Fehler, 2. Dateityp und -größe überprüfen, 3.. Dateiüberschreibung verhindern, 4. Verschieben von Dateien auf einen dauerhaften Speicherort.

Erklären Sie den Unterschied zwischen Selbst ::, Parent :: und static :: in Php OOP. Erklären Sie den Unterschied zwischen Selbst ::, Parent :: und static :: in Php OOP. Apr 09, 2025 am 12:04 AM

In Phpoop bezieht sich Self :: auf die aktuelle Klasse, Eltern :: Bezieht sich auf die Elternklasse, static :: wird für die späte statische Bindung verwendet. 1.self :: wird für statische Methoden und konstante Aufrufe verwendet, unterstützt jedoch keine späte statische Bindung. 2.PARENT :: wird für Unterklassen verwendet, um übergeordnete Klassenmethoden aufzurufen, und auf private Methoden können nicht zugegriffen werden. 3.Static :: unterstützt die verspätete statische Bindung, geeignet für Vererbung und Polymorphismus, kann jedoch die Lesbarkeit des Codes beeinflussen.

See all articles