Die Kinder müssen die Dummheiten der Erwachsenen so lange ertragen, bis sie alt genug sind, sie zu wiederholen.

CMD in PHP

Posted July 26, 2010 // PHP Programming // 0 views

Ich fand die Idee eines in PHP geschriebenen Kommandozeileninterpreters immer schon ganz interessant. Die Umsetzung jedoch ist schwieriger als gedacht – denn die Befehle unterscheiden sich stark in der Anzahl der Parameter.

Will man beispielsweise einfach nur eine Anzeige über die vorhandenen Befehle haben gibt es keinerlei Verzweigungen, sondern lediglich den Befehl “help”. Will man nun den Wartungsmodus der Webseite aktivieren benötigt es “cfg maintenance 1″ – sind schon 2 Strings mehr. Wer nun aber einen Benutzer “blitzbannen” will braucht sogar noch mehr Parameter: “user edit ban 1″.

Bisher ist die Programmierung ungefähr so abgelaufen: 20 – 50 Zeilen geschrieben -> festgestellt das es anders logischer und einfacher wäre -> alles gelöscht -> nochmal begonnen. Diese Liste wurde bisher 4 mal abgearbeitet. Durchaus eine nette Herausforderung (oder ich denke einfach wieder mal nur zu kompliziert).

Die zuletzt gefundene Lösung läuft über einen Array der sämtliche Befehle speichert… Fehlt dann wohl nur noch der Interpreter selbst. Um eine kleine Vorstellung dieses Arrays zu bekommen hier ein Beispiel:

$cmd = array(
	'help' => showHelp(),
	'user' => array(
		'edit' => editUser(),
		'del' => deleteUser(),
	),
	'cfg' => array(
		'maintenance' => setMaintenance(),
	),
);

Ich bin noch etwas unzufrieden mit der Tatsache für jede einzelne Aktion eine Funktion schreiben zu müssen – daher besteht definitiv noch “Überlegungsbedarf”.


0 Comments

no comments available



Who?
Etwas sarkastisch, hin und wieder vielleicht ein klein wenig wahnsinnig und dennoch (meistens) realistisch. Mein Name ist Hirczy Kevin,
19 Jahre jung und ich bin Hobbyprogrammierer!


Archives

Categories