was haltet ihr von der Idee mal eine Statusmaschine im PHP abzubilden.
Das heißt, das ich mir über diverse Scripte indirekt einen Ablauf schreibe und
die Schrittumschaltung z.B. über SwitchCase in eine eigene Systemvariabel schreibe.
Egal welchen Ablauf ich haben möchte aber diesen über eine Systemvariabel speicher und weiter verarbeite …
Das ist sehr gut und wird auch in guten Scripten so gemacht.
Hab jetzt zwar keinen Link parat, aber auch in der Hilfe gibt es Beispile welche einen StateMachine ähnlichen Ansatz verfolgen.
ok … aber da alles Event basierend ist ist es aber dich was kompliziert oder.
Das heißt wenn die StateMachine stehen bleibt wegen Fehler etc. muss man dafür sorgen das man ja wieder von vorne anfangen kann.
Das heißt eigentlich das man doch eine weitere Instanz haben muss die grundlegend die Schrittumschaltung überwacht oder?
eigentlich wäre das ja kein Problem zu realisieren. Man müsste ja dann bei der Schrittumschaltung
die Status Variable immer wegschreiben.
Ich frage mich vom Prinzip her ob das wirklich Sinn macht oder ob das Überhaupt zu der
art der Entwicklungsumgebung passt, also wie gesagt weil ja eigentlich alles Event basierend ist.
Hat vielleicht jemand eine Idee worauf man das ganze anwenden könnte oder überhaupt Sinn macht dieses Prinzip so anwenden zu wollen.
Vorteil ist bspw. das man damit zusammenhängende aber an und für sich selbstständige Scripte in ein großes zusammenfassen kann.
Als Beispiel fällt mir grad mein Wasserwechsel fürs Aquarium ein. Dieser erfolgt in 5 Phasen.
State: Aus Becken Wasser ablassen bis Hilfsbehälter voll
State: Hilfsbehälter in Gulli entleeren
State: Hilfsbehälter zur Hälfte mit Osmosewasser üllen
State: Hilfsbehälter ganz füllen
State: Hilfsbehälter zurück ins Aquarium pumpen.
Alle ist in einem Script welches durch Statusänderung der jeweiligen Füllstandssensoren getriggert wird.Weclher Codeteil ausgeführt wird entscheidet „State“
und wie organisierst du deine Statusmaschine wenn alles von vorne beginnen soll oder du eventuell bei Problemen in einem bestimmten Status wieder weitermachen möchtest …
die Statusmaschine stellt doch einen Zustand dar, der durch eine Eingabe oder Aktion in einen neuen Zustand überführt wird. Dieser kann ja dann auch der Ausgangszustand sein.
wenn aber ein Problem auftritt egal von was dann kann es doch sein das du deine Statusmaschine von beginnen lassen musst oder man hat irgendwie die Möglichkeit, egal woran man das fest macht z.B. weitere Systemvariabel, wieder an der Stelle weitere machen zu können.
Aber es soll ja automatisiert laufen, ich denke doch das wir vom gleichem reden oder. Eine Ablauf kann natürlich automatisiert sein oder halt auch teil automatisiert weil man auf Aktionen vom Bediener wartet …
das habe ich jetzt nicht verstanden. Du Arbeitest doch deine Statusmaschine ab.
Darin wird doch in jedem SwitchCase (ich wähle SwitchCase) zu dem Case irgendwas abgearbeitet,
Rückantworten geprüft und dann geht es doch weiter zum nächtsen Case.
Zu jedem Case kann irgendwas immer ausgeführt werden ob eine Bediener Aktion oder halt automatisiert.
Bis zu einem Punkt bis es dann am Ende wäre und erneut von vorne beginnt etc …
oder halt irgendwo hin springt wo es dann weiter geht etc …