Async steht hier für Asynchron, was bedeutet, dass der Prozess nicht synchron ist. Asynchron ermöglicht die parallele Ausführung des Codes. Das bedeutet, dass wir den Code separat und unabhängig voneinander ausführen können. Dies wird im Allgemeinen als asynchroner Prozess bezeichnet und gilt auch für PHP. Wir haben das Async-Modell in PHP, das uns die gleichzeitige Ausführung mehrerer Aufgaben ermöglicht. Es beschleunigt die Ausführung des Codes und erhöht auch die Leistung.
WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Syntax:
In PHP können wir das Spatie-Paket verwenden, um die Async-Funktion zu nutzen. Mit diesem Paket können wir einen Pool erstellen, der unseren asynchronen Aufruf verarbeitet und uns dabei hilft, die parallele Ausführung des Programms bereitzustellen. Zum besseren Verständnis können wir einen Blick auf die Syntax werfen. Siehe unten;
//package to be used use Spatie\Async\Pool; $mypool = Pool::create(); $mypool[] = async() { //your logic goes here })->then() { // your logic });
Zuerst müssen wir das Paket importieren, das hier „SpatieAsyncPool“ heißt. Danach erstellen wir einen Pool, der die asynchronen Vorgänge für uns übernimmt. Gefolgt vom Schlüsselwort „async“ darin schreiben wir unsere gesamte Logik und den Code, den wir parallel ausführen möchten. Hier haben wir eine „Dann“-Methode, die eine Rückrufmethode ist. Darin können wir auch unsere eigene Logik schreiben. Nach allen Operationen können wir weitere Operationen auf die gegebene Ausgabe im „then“-Block schreiben.
Jetzt wissen wir, dass die Async-Funktion uns die Ausführung mehrerer Aufgaben ermöglicht. Wenn wir über synchrone Programmierung in PHP sprechen, erhalten wir immer eine Ausgabe in derselben Reihenfolge. Angenommen, wir möchten die Zahl von 1 bis 10 drucken. Wenn ich diese Logik also mit dem Synchronous-Code schreibe, erhalte ich sie immer in aufsteigender Reihenfolge. Wenn wir hier jedoch versuchen, den asynchronen Code für dieselbe Logik zu verwenden, sind wir uns über die Reihenfolge der Zahlen nicht sicher. Wir werden dies im Folgenden anhand einiger Beispiele näher erläutern. Um den asynchronen Code in PHP zu schreiben, haben wir ein Paket namens „spatie“ verwendet. Dies ermöglicht uns auch eine bessere Behandlung von Fehlern und Ausnahmen im asynchronen Code. Zuerst werden wir sehen, wie man mit diesem Paket eine einfache Logik schreibt. Anschließend werden wir die weiteren Methoden, die mit asynchronem Code verwendet werden können, später im Detail besprechen.
Beispiel:
use Spatie\Async
cmd:
composer require spatie
Beispiel:
$mypool = Pool::create();
Wir können dem Poolobjekt einen beliebigen Namen geben. Vergessen Sie außerdem nicht, die in „Async“ vorhandene Pool-Klasse zu importieren. Siehe unten;
Beispiel:
use Spatie\Async\Pool;
Beispiel:
demoAsync(function () { // // }) ->then(function ($output) { // // })
Im obigen Codeteil erstellen wir eine asynchrone Funktion und verwenden deren Rückrufmethode „then“. Diese „then“-Funktion ist für den Betrieb verantwortlich, wenn der obige Codeblock erfolgreich ausgeführt wird. Wenn nicht, müssen wir diesen Fall mithilfe anderer Async-Methoden lösen.
Jetzt sehen wir einige Methoden zur Behandlung von Fehlern, Ausnahmen und Zeitüberschreitungen, die bei der Ausführung des Codes auftreten können. Dieses Paket stellt uns verschiedene Methoden zur Verfügung, um dies innerhalb des asynchronen Blocks des Codes zu handhaben. Lassen Sie uns jeden einzelnen davon im Detail besprechen. Siehe unten;
Die Methode wird ausgeführt, wenn der Codeblock seine Vorgänge nicht innerhalb des erwarteten Zeitrahmens ausführt oder auf einen Fehler stößt. Im Folgenden finden Sie die Syntax zum Schreiben dieser Methode:
Beispiel:
timeout(function () { // when timeout reached. })
Die Methode wird ausgeführt, wenn der Codeblock erfolgreich ausgeführt wurde und zusätzliche Operationen für das Ergebnis erforderlich sind. Im Folgenden finden Sie die Syntax zum Schreiben dieser Methode:
Beispiel:
then(function ($result) { // operation after result })
Diese Methode wird ausgeführt, wenn der Codeblock eine Ausnahme auslöst. Innerhalb dieser Methode können wir sie verarbeiten und unsere Logik ausführen. Die Syntax zum Schreiben dieser Methode ist unten dargestellt;
Beispiel:
catch(function ($exp) { // exception can be handle here. })
Following are the examples given below:
In this example, we are implementing async with the method and printing two messages to keep it simple for beginners.
Code:
use Spatie\Async\Pool; $mypool = Pool::create(); $mypool ->asyncDemo(function () { print("async called here !!") }) ->then(function () { print("then called after result !!") } ;
Output:
In this example, we are using all the methods of async from the Spatie\Async\ package. Those are catch, then, and timeout. We keep it simple for now without too much logic.
Code:
use Spatie\Async\Pool; $mypool = Pool::create(); $mypool ->asyncDemo(function () { print("async called here !!") print("async called here !!") }) ->then(function ($output) { print("print called here !!") }) ->catch(function ($exception) { print("catch called here !!") }) ->timeout(function () { print("timeout called here !!") }) ;
Output:
By using async in our code, we can enable parallel execution of tasks in our program. Also, they increase the performance of the code because the piece of code is independent of each other. But using StopIteration in situations where the data from the previous block of code is dependent on the current can lead to data loss and inconsistency.
Das obige ist der detaillierte Inhalt vonPHP asynchron. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!