国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
Key Takeaways
php-http und httplug
Der Plan
Voraussetzungen
Diffbot -Klasse
Entity Factory
Entit?t Iterator
Tests
Schlussfolgerung
h?ufig gestellte Fragen (FAQs) zu PHP HTTP und HTTPLUG
Was ist der Unterschied zwischen Guzzle5 und PHP HTTP/HTTPLUG? Guzzle5 ist ein spezifischer HTTP -Client, w?hrend PHP HTTP eine Abstraktionsschicht ist, mit der Sie einen HTTP -Client verwenden k?nnen. HTTPLUG ist eine Erweiterung von PHP HTTP, die zus?tzliche Funktionen bietet. Der Hauptunterschied besteht > Die Migration von Guzzle5 zu PHP HTTP/HTTPLUG beinhaltet den Ersatz des Guzzle5 -Clients durch einen Adapter, der die PHP -HTTP -Schnittstellen implementiert. Dies kann mit der HTTPLUG -Bibliothek erfolgen, die Adapter für verschiedene HTTP -Clients, einschlie?lich Guzzle5, bereitstellt. Sobald der Adapter eingerichtet ist, k?nnen Sie die PHP -HTTP -Methoden verwenden, um Anforderungen zu senden und Antworten zu behandeln. Die Verwendung von PHP HTTP/HTTPLUG über Guzzle5 ist die erh?hte Flexibilit?t und Interoperabilit?t. Mit PHP HTTP/HTTPLUG k?nnen Sie zwischen verschiedenen HTTP -Clients wechseln, ohne Ihren Code zu ?ndern. Dies erleichtert es, Ihre Anwendung mit verschiedenen Kunden zu testen und bei Bedarf die Kunden zu wechseln. Zus?tzlich bietet HTTPLUG ein Plugin -System, mit dem Sie Ihrem HTTP -Client Funktionen hinzufügen k?nnen. Abh?ngigkeitsmanagement -Tool für PHP. Sie k?nnen es installieren, indem Sie den Befehlskomponisten ausführen, der PHP-HTTP/HTTPLUG ben?tigt. Dadurch wird die HTTPLUG -Bibliothek und ihre Abh?ngigkeiten heruntergeladen. ein Anforderungsobjekt. Dies kann unter Verwendung der Createrequest -Methode der MessageFactory -Schnittstelle erfolgen. Sobald Sie ein Anforderungsobjekt haben, k?nnen Sie es mit der SendRequest -Methode der HTTPClient -Schnittstelle senden. dargestellt durch die ResponseInterface -Schnittstelle. Sie k?nnen auf den Statuscode, die Header und den K?rper der Reaktion mit dem GetStatuscode, Getheaders bzw. Getbody -Methoden zugreifen. ??> Die Erkennungskomponente in PHP HTTP/HTTPLUG wird verwendet, um verfügbare HTTP -Adapter und Nachrichtenfabriken automatisch zu finden und zu verwenden. Dies erleichtert es, zwischen verschiedenen HTTP -Clients zu wechseln und die beste verfügbare Implementierung zu verwenden. Aufrufen der statischen Fundmethode in den HTTPClientDiscovery- oder MessageFactoryDiscovery -Klassen. Dadurch wird eine Instanz des ersten verfügbaren HTTP -Clients oder Nachrichtenfabriks zurückgegeben.
Was sind die Plugins in httplug und wie verwende ich sie? Sie k?nnen verwendet werden, um Funktionen wie Authentifizierung, Caching und Fehlerbehandlung hinzuzufügen. Plugins k?nnen dem Client unter Verwendung der Adcdplugin -Methode der PluginClient -Klasse hinzugefügt werden. Implementieren Sie die HTTPClientException -Schnittstelle. Sie k?nnen diese Ausnahmen fangen und nach Bedarf umgehen. Darüber hinaus k?nnen Sie das Fehlerplugin verwenden, um nicht 200 Antworten in Ausnahmen zu konvertieren.
Heim Backend-Entwicklung PHP-Tutorial Frei von Guzzle5 mit PHP-HTTP und HTTPLUG

Frei von Guzzle5 mit PHP-HTTP und HTTPLUG

Feb 16, 2025 am 10:04 AM

Frei von Guzzle5 mit PHP-HTTP und HTTPLUG

Key Takeaways

  • httplug, ein Projekt von PHP-HTTP, erm?glicht eine einfache Injektion eines jeden HTTP-Clients in ein SDK, das eine L?sung für Anwendungen bereitstellt, die bereits über einen bevorzugten HTTP-Client verfügen und die Verwendung von Guzzel vermeiden m?chten.
  • .
  • Das HTTPLUG-Schnittstellenpaket und das Guzzle 6 k?nnen mit dem Komponisten mit dem Befehl PHP-HTTP/Guzzle6-Adapter zusammengezogen werden. Dies erm?glicht die Verwendung von Guzzle 6 oder einem anderen Adapter, der die HTTPClient -Schnittstelle von HTTPLUG implementiert.
  • Das PHP-HTTP-Projekt zielt darauf ab, alle HTTP-Clients in PHP maximal zu unterstützen, einschlie?lich Guzzle 5 und 6 sowie Zend1 und 2., dies erm?glicht keine Konflikte mit installierten Client-Versionen und einfachem Einstecken des entsprechenden Adapters.
  • Der Diffbot SDK wurde psr-7 kompatibel und empf?nglich für andere Implementierungen von HTTP-Clients. Es braucht nur einen Adapter, der die HTTPLUG -Schnittstelle respektiert, damit alles über die Box funktioniert.
  • httplug bietet einen neuen Ansatz zur Abstraxing von HTTP -Client -Implementierungen in Apps und bietet Erweiterbarkeit für die Kosten einer zus?tzlichen Abstraktionsebene.

Dieser Artikel wurde von Márk Sági-Kazár und David Buchmann geprüft. Vielen Dank an alle Peer -Rezensenten von SitePoint, die SitePoint -Inhalte so gut wie m?glich gemacht haben!


In einer früheren Serie haben wir einen PHP -Client für Diffbot erstellt. Der Kunde arbeitet gut und nutzt relativ weit verbreitet - wir haben sie sogar in einer Live -App getestet, um sicherzustellen, dass es auf NACH ist - aber es h?ngt stark von Guzzle 5 ab.

Es gibt zwei Probleme damit:

  1. Guzzle 6 ist aus und unterstützt PSR 7. W?hrend der Autor von Guzzle behauptet, Guzzle 5 wird auf absehbare Zeit unterstützt, ist es sicherer, seine Langlebigkeit skeptisch gegenüber zu sein. Au?erdem ist es, w?hrend PSR 7 seine Macken hat, gut, PSRS zu folgen, wenn auch nur für die Kompatibilit?t mit anderen Projekten
  2. Jemand, der unseren Kunden in seiner App implementiert, hat m?glicherweise bereits einen bevorzugten HTTP -Client in Gebrauch und m?chte seine als ihre Verwendung verwenden. Wir sollten eine einfache Injektion von in unserem SDK HTTP -Client in unserem SDK erm?glichen.

zuf?llig gibt es ein neues Projekt, das es uns erm?glicht, genau das zu tun: httplug.

Frei von Guzzle5 mit PHP-HTTP und HTTPLUG

Hinweis: Sie müssen mit der internen Logik des Diffbot -SDK nicht vertraut sein, um mitzumachen. Der Prozess in diesem Artikel gilt für jedes Paket mit einer konkreten HTTP -Client -Implementierung und ist leicht zu befolgen.

php-http und httplug

php-http ist eine GitHub-Organisation für HTTP-verwandte Tools in PHP. Es bietet HTTPLUG, eine Sammlung von Schnittstellen und Ausnahmen, um einen minimalen HTTP-Client-Vertrag auf der PSR-7-Anfrage und -antwort zu definieren. Implementierungen dieses Vertrags Bereitstellen das virtuelle Paket PHP-HTTP/Client-Implementation.

Dies bedeutet, dass jemand, der Guzzle 6 verwendet, einen PHP-HTTP/Guzzle6-Adapter ben?tigt, um den Adapter, das HTTPLUG-Schnittstellenpaket und das Guzzle 6 selbst als Abh?ngigkeit des Adapters zu ziehen.

.

httplug ist der Einstiegspunkt für ein wiederverwendbares Paket. Es ist die Client -Abstraktion, auf der alle Clients (wie der Guzzle6 -Adapter) basieren. Diese Kunden nutzen dann ihre zugrunde liegenden Pakete / Abh?ngigkeiten weiter - in diesem Fall Guzzle 6.

unten nach oben:
  • Ein HTTP -Client existiert (Guzzle 6)
  • Ein Guzzle 6 -Adapter wird mit Httplug als Schnittstelle dafür erstellt. Wickelt Guzzle 6
  • Eine App, die in der Lage sein muss, HTTP -Anrufe zu t?tigen, erfordert eine HTTPLUG -HTTPCLIENT -Schnittstelle und nicht guzzle 6 direkt
  • Die App kann dann Guzzle 6 oder einen anderen Adapter verwenden, der die HTTPClient -Schnittstelle von HTTPLUG implementiert und ein weiteres HTTP -Client von Drittanbietern einwickelt

Der Plan des Teams besteht darin, alle verschiedenen HTTP -Clients in PHP Land maximal zu unterstützen: Guzzle 6, Guzzle 5, Zend2, Zend1 usw. Auf diese Weise hat ein Benutzer eines Frameworks oder einer App keine Konflikte mit installierten Konflikten Client -Versionen und schlie?en einfach den entsprechenden Adapter in den Mix an.

Beachten Sie, dass wir die Begriffe Adapter und Client

hier fast austauschbar verwenden - die auf HTTPLUG basierenden Adapter sind beide. Sie sind Wrapper für bestehende Kunden, aber direkt als Kunden selbst verwendet.

Unser Plan in diesem Beitrag ist es, die Betonguzzle 5 Abh?ngigkeit des PHP -Clients von Diffbot durch die HTTPLUG -Version zu ersetzen.

Hinweis: HTTPLUG- und Verwandte Pakete sind Alpha -Software und k?nnen als solche ge?ndert werden. Es ist ein riskantes Unterfangen, etwas zu konvertieren, um sie zu verwenden.

Bootstrapping

Wie üblich wird empfohlen, dass wir das Geh?ft verbessert haben, um unsere Umgebung zu starten. Sobald wir fertig sind, k?nnen wir die aktuelle stabile Version des SDK klonen und testen:
git clone https://github.com/swader/diffbot-php-client
cd diffbot-php-client 
git checkout tags/0.4.5 
composer install
phpunit

Der letzte Befehl geht davon aus, dass Phpunit weltweit in der Entwicklungsumgebung installiert ist.

Alle Tests sollten bestehen (mit Ausnahme eines übersprungenen, der aufgrund einiger Unsinn fehlerhaft und unfixierbar ist), daher sind wir bereit, mit dem Umbau zu beginnen.

Erste Schritte

Erstens müssen wir eine neue Zweigstelle erstellen, um dieses Upgrade zu entwickeln.

git checkout -b feature-httplug
Dann fügen wir zwei Abh?ngigkeiten in unsere Composer.json -Datei hinzu:

git clone https://github.com/swader/diffbot-php-client
cd diffbot-php-client 
git checkout tags/0.4.5 
composer install
phpunit

Was dies tut, ist, dem Client zu sagen, dass es von nun an von einem virtuellen Paket - diesem eine abh?ngt. Dies bedeutet, dass die Anwendung mit unserem Diffbot -Client (wie dieser) eine Implementierung dieses Pakets ausw?hlen muss (eines der am Link auf Packagisten aufgeführten Paket). W?hrend der Entwicklung des Pakets w?re es natürlich unm?glich zu testen und zu prüfen, ob alles ohne tats?chliche Implementierung funktioniert. Daher geben wir eine zus?tzliche Abh?ngigkeit von Request-Dev an. Im obigen Fall verwenden wir "php-http/guzzle6-adapter": "~0.2@dev". Wir haben diese bestimmte Version ausgew?hlt, nur weil sie die neueste ist und es keine stabile Ver?ffentlichung gibt.

Hinweis: Sie fragen sich vielleicht, warum wir den Ansatz des Hinzufügens von Werten in Composer.json verwendet haben, anstatt Abh?ngigkeiten im Terminal interaktiv zu deklarieren, wie wir es normalerweise tun. Dies liegt daran, dass ein Komponist für ein virtuelles Paket einen Fehler macht - das Paket gibt es nicht wirklich, es ist nur sein virtueller Name, ein Platzhalter, sodass der Komponist verwirrt ist, ohne zu wissen, was zu installieren ist. Es gibt ein Problem, das eine ?nderung dazu hindert, aber es wird wahrscheinlich nicht bald geschehen.

Da die PHP-HTTP-Pakete immer noch unter starker Entwicklung stehen, sollten wir unseren Composer.json-Datei die folgenden zwei Werte hinzufügen:

git checkout -b feature-httplug

Dies soll die Installation von Entwicklerpaketen (nicht stabil) erm?glichen, bevorzugt jedoch stabile Versionen, wenn sie existieren. Anstatt beispielsweise Phpunit 5.2.x zu holen, wird es 5.0,8 (am aktuellsten zum Zeitpunkt des Schreibens) abrufen, aber es wird auch erfolgreich sein, wenn wir es nach Paketen fragen, die nicht haben stabile Ver?ffentlichungen (wie der Guzzle6-Adapter).

Wir müssen auch die Abh?ngigkeit von Guzzle5 entfernen, wenn wir beabsichtigen, Guzzle6 zu installieren. Die Finale erfordern Bl?cke wie folgt:

	"require": {
        ...
        "php-http/client-implementation": "^1.0"
    },
    "require-dev": {
        ...
        "php-http/guzzle6-adapter": "~0.2@dev"
    },

Der Plan

Die Art und Weise, wie das SDK derzeit funktioniert, lautet wie folgt: In der Hauptdiffbot -Klasse setzen wir optional einen HTTPClient. Dies ist derzeit an die Implementierung von Guzzle in Version 5 gebunden. Wenn keine benutzerdefinierte Client -Instanz festgelegt ist, verwendet die Diffbot -Klasse automatisch einen Standard -Client.

Dieser Client wird dann von der Anrufmethode des API Abstract verwendet, um eine GET -Anforderung an die angegebene URL auszustellen. Darüber hinaus gibt es in der Crawl -API -Klasse und der Such -API -Klasse eine benutzerdefinierte Anrufmethode.

Das Ergebnis des Anrufs wird als $ Antwort gespeichert, bei der es sich um eine Guzzle5 -Antwort handelt. Diese Antwort wird dann zus?tzlich von der Entit?tsfabrik verarbeitet, die ihre Gültigkeit überprüft und Entit?ten darstellt, wodurch sie in die Entit?t -Iterator drückt.

Der Plan ist also:

  1. Ersetzen Sie Diffbot :: Sethttpclient durch eine Methode, bei der eine HTTPLUG -Implementierung akzeptiert
  2. ?ndern Sie die Anrufmethoden der API -Abstract, CRABS und Suchklasse, damit sie eine GET -Anforderung mit jeder HTTP -Client -Implementierung ausstellen k?nnen, die ihnen zur Verfügung gestellt wird.
  3. ?ndern Sie die Entit?tsfabrik- und Entit?t-Iterator, so dass sie nicht mehr von der Guzzle5-Version der Antwort abh?ngen, sondern das PSR-7-Gegenstück.

Das PHP-HTTP-Projekt verfügt über ein zus?tzliches Paket, Utils, das httpMethodsclient enth?lt. Diese Klasse wickelt eine Nachrichtenfabrik und den HTTP-Client in ein Ganzes ein und erleichtert das Senden von Anfragen mit h?ufig verwendeten Verben wie GET, Post usw.-somit in etwas ?hnliches übersetzt, was wir bisher hatten: $ client-> get (. ..). Darüber hinaus gibt es auch das PSR-7-ResponseInterface zurück, was bedeutet, dass die Getbody-Methode uns zur Verfügung steht-das bleibt nur die Tojson-Methode unimplementiert, was wir leicht selbst tun k?nnen.

Darüber hinaus verfügt das Projekt über eine Erkennungskomponente, die einige statische Klassen zum Aufdecken installierter Fabriken und Clients enth?lt. Dadurch k?nnen wir unserem Endbenutzer in einigen F?llen eine Erfahrung mit einer Nullkonfiguration bieten (siehe DOCs).

Mit dem Schlachtplan k?nnen wir mit dem Refactoring beginnen.

Voraussetzungen

Erfordern wir die zus?tzlichen Pakete:

git clone https://github.com/swader/diffbot-php-client
cd diffbot-php-client 
git checkout tags/0.4.5 
composer install
phpunit

Diffbot -Klasse

Die Diffbot -Klasse hat diese Zeile oben:

git checkout -b feature-httplug

wir k?nnen es einfach ?ndern in:

	"require": {
        ...
        "php-http/client-implementation": "^1.0"
    },
    "require-dev": {
        ...
        "php-http/guzzle6-adapter": "~0.2@dev"
    },

Die Sethttpclient -Methode sollte jetzt in der IDE aufflammen und sagen, dass einige erforderliche Parameter fehlen, n?mlich der Client zu verwenden, und die Nachrichtenfabrik, mit der Anforderungsinstanzen erstellt werden k?nnen.

Die Methode sollte in:

neu gestaltet werden
"prefer-stable": true,
"minimum-stability": "dev"

Alternativ k?nnen die Erkennungsklassen mit Verwendung von Anweisungen oben in der Klasse importiert werden.

Diese ?nderung hat dem Endbenutzer des Diffbot -SDK nun einen beiden erm?glicht:

  • Lassen Sie ihren eigenen Client installieren und lassen Sie die Erkennungskomponenten zusammen mit httpMethodsclient automatisch um die Dinge kümmern, oder
  • Konfigurieren Sie ihre eigene httpMethodsclient -Instanz, indem Sie eine benutzerdefinierte Instanz eines PSR 7 -Clients und einer Nachrichtenfabrik in eine neue Instanz davon injizieren und in die Sethttpclient -Methode für die volle Flexibilit?t injizieren
  • injizieren

Die meisten Benutzer verwenden dies für Autopilot.

API Abstract, Crawl und Suche

Als n?chstes die Anrufmethoden.

Frei von Guzzle5 mit PHP-HTTP und HTTPLUG

Da die von uns zuvor implementierte HTTPMethodsClient -Instanz eine GET -Methode hat, sind diesbezüglich keine ?nderungen erforderlich. Die $ Response -Instanz zeigt jedoch eine MistMatch und aus gutem Grund. Die ursprüngliche $ -Antwort, die vom EntityFactory erwartet wird, ist eine Guzzle5 -Antwort.

Aufgrund der Beschwerde von EntityFactory müssen wir die API -Zusammenfassung nicht wirklich bearbeiten - sie wird sich selbst um die Dinge kümmern. Das Crawl -Class -Call -Gegenstück ist etwas anders:

git clone https://github.com/swader/diffbot-php-client
cd diffbot-php-client 
git checkout tags/0.4.5 
composer install
phpunit

Zwei Warnungen hier - die zweite Zeile der Methode, die die JSON -Methode von $ response verwendet, und die EntityIterator -Instanziierung, die eine Guzzle5 -Antwort erwartet. Die einzige Linie, die wir von hier aus beeinflussen k?nnen, ist die erstere. Wechseln wir sie also in:

git checkout -b feature-httplug

Eine ?hnliche ?nderung muss in der Anrufmethode der Suchklasse durchgeführt werden, wobei die Zeile:

	"require": {
        ...
        "php-http/client-implementation": "^1.0"
    },
    "require-dev": {
        ...
        "php-http/guzzle6-adapter": "~0.2@dev"
    },

?ndert sich in:

"prefer-stable": true,
"minimum-stability": "dev"

Entity Factory

Die EntityFactory -Klasse hat den folgenden Import oben:

    "require": {
        "php" : ">=5.4.0",
        "php-http/client-implementation": "^1.0"
    },
    "require-dev": {
        "symfony/var-dumper": "~2",
        "phpunit/phpunit": "^5.0",
        "php-http/guzzle6-adapter": "~0.2@dev"
    },

wir k?nnen dies ?ndern in:

composer require "php-http/utils" "php-http/discovery"

Das Gleiche muss in der EntityFactory -Schnittstelle erfolgen, die die Entit?tsfaktorik impliziert.

Die andere ?nderung ?hnelt dem, was wir oben in der Crawl -Klasse getan haben. Wir ?ndern:

use GuzzleHttp\Client;

bis

use Http\Client\Utils\HttpMethodsClient as Client;

in checkResponseformat- und CreateAppropotIderator -Methoden.

Entit?t Iterator

Wir ?ndern:

<span>/**
</span><span> * Sets the client to be used for querying the API endpoints
</span><span> *
</span><span> * <span>@param Client $client
</span></span><span> * <span>@see http://php-http.readthedocs.org/en/latest/utils/#httpmethodsclient
</span></span><span> * <span>@return $this
</span></span><span> */
</span><span>public function setHttpClient(Client $client = null)
</span><span>{
</span>    <span>if ($client === null) {
</span>		<span>$client = new Client(
</span>		   <span><span>\Http\Discovery\HttpClientDiscovery</span>::find(),
</span>		   <span><span>\Http\Discovery\MessageFactoryDiscovery</span>::find()
</span>		<span>);
</span>    <span>}
</span>    <span>$this->client = $client;
</span>    <span>return $this;
</span><span>}
</span>

bis

<span>public function call()
</span><span>{
</span>    <span>$response = $this->diffbot->getHttpClient()->get($this->buildUrl());
</span>
    <span>$array = $response->json();
</span>
    <span>if (isset($array['jobs'])) {
</span>        <span>$jobs = [];
</span>        <span>foreach ($array['jobs'] as $job) {
</span>            <span>$jobs[] = new JobCrawl($job);
</span>        <span>}
</span>
        <span>return new EntityIterator($jobs, $response);
</span>    <span>} elseif (!isset($array['jobs']) && isset($array['response'])) {
</span>        <span>return $array['response'];
</span>    <span>} else {
</span>        <span>throw new DiffbotException('It appears something went wrong.');
</span>    <span>}
</span><span>}
</span>

Tests

Verspottung, die Hauptmethode zum Testen von HTTP -Anforderungen und API -Aufrufen ist in Guzzle 6 unterschiedlich, daher erfordern unsere Tests eine etwas gr??ere überholung.

Da dieses Tutorial auf der langen Seite bereits ein wenig ist .

Schlie?lich führen wir die Tests durch:

$array = json_decode($response->getBody(), true);

Erfolg! Alle bestehen (mit Ausnahme des erwarteten übersprungenen Tests).

Der Diffbot SDK ist jetzt nicht nur PSR-7-kompatibel, sondern auch für andere Implementierungen von HTTP-Clients empf?nglich. Alles, was es braucht, ist ein Adapter, das die HTTPLUG -Schnittstelle respektiert, und alles sollte nicht über die Box gelangen.

Schlussfolgerung

httplug ist ein nützlicher neuer Ansatz zur Abstraxung der HTTP -Client -Implementierungen in den von uns erstellten Apps. Unabh?ngig davon

Wenn Sie helfen m?chten, indem Sie weitere Adapter -Implementierungen hinzufügen oder nur die Pakete ausprobieren und Feedback geben, begrü?t das Team alle Beitr?ge. Machen Sie sich mit uns in Verbindung oder lassen Sie Ihr Feedback im Kommentarbereich unten. Wenn Sie dieses Tutorial interessant fanden, vergessen Sie nicht, diese Taste wie Schaltfl?che zu klicken!

h?ufig gestellte Fragen (FAQs) zu PHP HTTP und HTTPLUG

Was ist der Unterschied zwischen Guzzle5 und PHP HTTP/HTTPLUG? Guzzle5 ist ein spezifischer HTTP -Client, w?hrend PHP HTTP eine Abstraktionsschicht ist, mit der Sie einen HTTP -Client verwenden k?nnen. HTTPLUG ist eine Erweiterung von PHP HTTP, die zus?tzliche Funktionen bietet. Der Hauptunterschied besteht > Die Migration von Guzzle5 zu PHP HTTP/HTTPLUG beinhaltet den Ersatz des Guzzle5 -Clients durch einen Adapter, der die PHP -HTTP -Schnittstellen implementiert. Dies kann mit der HTTPLUG -Bibliothek erfolgen, die Adapter für verschiedene HTTP -Clients, einschlie?lich Guzzle5, bereitstellt. Sobald der Adapter eingerichtet ist, k?nnen Sie die PHP -HTTP -Methoden verwenden, um Anforderungen zu senden und Antworten zu behandeln. Die Verwendung von PHP HTTP/HTTPLUG über Guzzle5 ist die erh?hte Flexibilit?t und Interoperabilit?t. Mit PHP HTTP/HTTPLUG k?nnen Sie zwischen verschiedenen HTTP -Clients wechseln, ohne Ihren Code zu ?ndern. Dies erleichtert es, Ihre Anwendung mit verschiedenen Kunden zu testen und bei Bedarf die Kunden zu wechseln. Zus?tzlich bietet HTTPLUG ein Plugin -System, mit dem Sie Ihrem HTTP -Client Funktionen hinzufügen k?nnen. Abh?ngigkeitsmanagement -Tool für PHP. Sie k?nnen es installieren, indem Sie den Befehlskomponisten ausführen, der PHP-HTTP/HTTPLUG ben?tigt. Dadurch wird die HTTPLUG -Bibliothek und ihre Abh?ngigkeiten heruntergeladen. ein Anforderungsobjekt. Dies kann unter Verwendung der Createrequest -Methode der MessageFactory -Schnittstelle erfolgen. Sobald Sie ein Anforderungsobjekt haben, k?nnen Sie es mit der SendRequest -Methode der HTTPClient -Schnittstelle senden. dargestellt durch die ResponseInterface -Schnittstelle. Sie k?nnen auf den Statuscode, die Header und den K?rper der Reaktion mit dem GetStatuscode, Getheaders bzw. Getbody -Methoden zugreifen. ??> Die Erkennungskomponente in PHP HTTP/HTTPLUG wird verwendet, um verfügbare HTTP -Adapter und Nachrichtenfabriken automatisch zu finden und zu verwenden. Dies erleichtert es, zwischen verschiedenen HTTP -Clients zu wechseln und die beste verfügbare Implementierung zu verwenden. Aufrufen der statischen Fundmethode in den HTTPClientDiscovery- oder MessageFactoryDiscovery -Klassen. Dadurch wird eine Instanz des ersten verfügbaren HTTP -Clients oder Nachrichtenfabriks zurückgegeben.

Was sind die Plugins in httplug und wie verwende ich sie? Sie k?nnen verwendet werden, um Funktionen wie Authentifizierung, Caching und Fehlerbehandlung hinzuzufügen. Plugins k?nnen dem Client unter Verwendung der Adcdplugin -Methode der PluginClient -Klasse hinzugefügt werden. Implementieren Sie die HTTPClientException -Schnittstelle. Sie k?nnen diese Ausnahmen fangen und nach Bedarf umgehen. Darüber hinaus k?nnen Sie das Fehlerplugin verwenden, um nicht 200 Antworten in Ausnahmen zu konvertieren.

Das obige ist der detaillierte Inhalt vonFrei von Guzzle5 mit PHP-HTTP und HTTPLUG. 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

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)

Wie implementiere ich Authentifizierung und Autorisierung in PHP? Wie implementiere ich Authentifizierung und Autorisierung in PHP? Jun 20, 2025 am 01:03 AM

TosecurelyHandleAuthenticationAuthorizationInphp, folge theSteps: 1.Alwayshashpasswordswithpassword_hash () und password_verify (), usePreeParedStatementStopreventsQlinjapitca und StoreuserDatain $ _SessionArtelogin.2.ImplementscaChescescesc

Wie k?nnen Sie Dateien -Uploads in PHP sicher verarbeiten? Wie k?nnen Sie Dateien -Uploads in PHP sicher verarbeiten? Jun 19, 2025 am 01:05 AM

Um Datei -Uploads in PHP sicher zu verarbeiten, besteht der Kern darin, Dateitypen zu überprüfen, Dateien umzubenennen und die Berechtigungen zu beschr?nken. 1. Verwenden Sie Finfo_File (), um den realen MIME -Typ zu überprüfen, und nur bestimmte Typen wie Bild/JPEG sind zul?ssig. 2. Verwenden Sie Uniqid (), um zuf?llige Dateinamen zu generieren und sie im Root-Verzeichnis ohne Web zu speichern. 3.. Begrenzen Sie die Dateigr??e durch Php.ini- und HTML -Formulare und setzen Sie die Verzeichnisberechtigungen auf 0755; 4. Verwenden Sie Clamav, um Malware zu scannen, um die Sicherheit zu verbessern. Diese Schritte verhindern effektiv Sicherheitslücken und stellen sicher, dass der Upload -Prozess des Datei -Uploads sicher und zuverl?ssig ist.

Was sind die Unterschiede zwischen == (loser Vergleich) und === (strenger Vergleich) in PHP? Was sind die Unterschiede zwischen == (loser Vergleich) und === (strenger Vergleich) in PHP? Jun 19, 2025 am 01:07 AM

In PHP ist der Hauptunterschied zwischen == und == die Strenge der Typprüfung. == Die Konvertierung des Typs wird vor dem Vergleich durchgeführt, beispielsweise 5 == "5" gibt true zurück und === fordert an, dass der Wert und der Typ gleich sind, bevor True zurückgegeben wird, z. B. 5 === "5" gibt false zurück. In den Nutzungsszenarien ist === sicherer und sollte zuerst verwendet werden, und == wird nur verwendet, wenn die Typumwandlung erforderlich ist.

Wie führe ich arithmetische Operationen in PHP (, -, *, /, %) aus? Wie führe ich arithmetische Operationen in PHP (, -, *, /, %) aus? Jun 19, 2025 pm 05:13 PM

Die Methoden zur Verwendung grundlegender mathematischer Operationen in PHP sind wie folgt: 1. Additionszeichen unterstützen Ganzfaktoren und Floating-Punkt-Zahlen und k?nnen auch für Variablen verwendet werden. String -Nummern werden automatisch konvertiert, aber nicht für Abh?ngigkeiten empfohlen. 2. Subtraktionszeichen verwenden - Zeichen, Variablen sind gleich, und die Typumwandlung ist ebenfalls anwendbar. 3. Multiplikationszeichen verwenden * Zeichen, die für Zahlen und ?hnliche Zeichenfolgen geeignet sind; 4. Division verwendet / Zeichen, die vermeiden müssen, durch Null zu dividieren, und beachten Sie, dass das Ergebnis m?glicherweise schwimmende Punktzahlen sein kann. 5. Die Modulzeichen k?nnen verwendet werden, um ungerade und sogar Zahlen zu beurteilen, und wenn negative Zahlen verarbeitet werden, stimmen die Restzeichen mit der Dividende überein. Der Schlüssel zur korrekten Verwendung dieser Operatoren liegt darin, sicherzustellen, dass die Datentypen klar sind und die Grenzsituation gut behandelt wird.

Wie k?nnen Sie mit NoSQL -Datenbanken (z. B. MongoDB, Redis) von PHP interagieren? Wie k?nnen Sie mit NoSQL -Datenbanken (z. B. MongoDB, Redis) von PHP interagieren? Jun 19, 2025 am 01:07 AM

Ja, PHP kann mit NoSQL -Datenbanken wie MongoDB und Redis durch bestimmte Erweiterungen oder Bibliotheken interagieren. Verwenden Sie zun?chst den MongoDBPHP -Treiber (installiert über PECL oder Composer), um Client -Instanzen zu erstellen und Datenbanken und Sammlungen zu betreiben, wobei Sie Insertion, Abfrage, Aggregation und andere Vorg?nge unterstützen. Zweitens verwenden Sie die Predis Library oder PHPREDIS-Erweiterung, um eine Verbindung zu Redis herzustellen, Schlüsselwerteinstellungen und -akquisitionen durchzuführen und PHPREDIS für Hochleistungsszenarien zu empfehlen, w?hrend Predis für die schnelle Bereitstellung bequem ist. Beide sind für Produktionsumgebungen geeignet und gut dokumentiert.

Wie bleibe ich mit den neuesten PHP-Entwicklungen und Best Practices auf dem neuesten Stand? Wie bleibe ich mit den neuesten PHP-Entwicklungen und Best Practices auf dem neuesten Stand? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

Was ist PHP und warum wird es für die Webentwicklung verwendet? Was ist PHP und warum wird es für die Webentwicklung verwendet? Jun 23, 2025 am 12:55 AM

PHPBECAMEPOPULARFORWebDevelopmentDuetoitSeaseoflearning, Seamlessintegrationwithhtml, weit verbreitete Hostingsupport, andalargeecosystemincludingFrameWorkelaravelandcmsplatformen -?hnliche WordPress.itexcelsinformlingsformen, Managingusesersions, Interacti

Wie setzen Sie die PHP -Zeitzone? Wie setzen Sie die PHP -Zeitzone? Jun 25, 2025 am 01:00 AM

Tosettherighttimezoneinphp, usedate_default_timezone_set () functionAtthestartofyourScriptWithAvalididentifiersuchas'america/new_york'.1.usedate_default_timezone_set () beeanydate/timeFununtions.2.Alternativ, konfigurieren

See all articles