So erstellen Sie Ihr erstes PHP -Paket
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"第一次提交" # 稍后您可以添加远程仓库并推送源代码
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": {} }
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
automatisches Laden
einstellenNach 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
und verwenden Sie die Taste composer.json
, um den Autoloader zu konfigurieren: "autoload"
{ "name": "laravelnews/feeds", "description": "获取Laravel-News.com的文章", "type": "library", "require": {}, "autoload": { "psr-4": { "LaravelNews\Feed\": "src/" } } }
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); } }
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"第一次提交" # 稍后您可以添加远程仓库并推送源代码
: composer install
ausführen
{ "name": "laravelnews/feeds", "description": "获取Laravel-News.com的文章", "type": "library", "require": {} }
auch ausführen, nachdem der Namespace zu composer.json
hinzugefügt wird, um den Autoloader des Komponisten zu aktualisieren. dump-autoload
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
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
git remote add origin git@github.com:laravelnews/example-package.git
zu konfigurieren, um die Abhängigkeiten organisiert zu halten: composer.json
$ mkdir src/ $ touch src/Api.php
-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/" } } }
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); } }
Klasse als Abhängigkeit dauert und wir sie in unseren Tests verspotten. Api
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"第一次提交" # 稍后您可以添加远程仓库并推送源代码
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": {} }
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!

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

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

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











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 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.

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 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.

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 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

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.

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.
