Ist diese Implementierung ein gutes Beispiel für ein Versprechen in PHP? [geschlossen]

8

Ich habe über das Promise-Muster gelesen, und ich habe versucht, eine Version in PHP mit Hilfe von ein paar Beispielen und meinem eigenen Verständnis davon, wie es funktionieren sollte, zu programmieren. Ist das ein vernünftiges Beispiel für das Promise-Muster, oder habe ich das falsch implementiert?

%Vor%

Beispiel Verwendung:

%Vor%     
Darth Egregious 16.05.2013, 19:54
quelle

1 Antwort

13

Ihre Promise-Implementierung ist größtenteils korrekt. Es gibt jedoch ein Problem: zumindest in PHP ist es meist nutzlos und entspricht fast vollständig dem Observer-Muster wikipedia msdn oodesign .

PHP ist fast vollständig single-threaded. sleep ist keine Ausnahme. Daher wird Ihr gesamtes Versprechen Ihr Skript blockieren, bis es abgeschlossen ist. Als Ergebnis, da die Operationen inline ausgeführt werden, können Sie auch nicht stören.

Eine Möglichkeit, dieses kleine Problem loszuwerden, besteht darin, dass Ihre Promise vom Haupt-Skript abzweigt, was mit der PCNTL-Funktionsfamilie möglich ist. Dadurch kann der Promise-Code im Hintergrund ausgeführt werden, während das Hauptscript fortgesetzt wird. Wenn das Versprechen abgeschlossen ist, kommt es zurück.

Eine Möglichkeit, dies zu tun, ist in Ссылка beschrieben. Es verwendet pcntl_fork aktiv, wodurch Sie einen neuen Thread forkieren können. Es hat Nachteile - die größte von ihnen ist die Unfähigkeit, den Hauptprozess durch nichts als Signale zu melden.

    
Sébastien Renauld 16.05.2013, 20:14
quelle

Tags und Links