Hallöchen Leute,
ich bin etwas langsamer gewesen als Eliwood, doch auch ich habe seit ca. Ende Januar an einer neueren Version für LOGD 0.9.7 gearbeitet, allerdings auf einer anderen objektorientierten Basis.
Doch bevor ich dazu komme, sehe ich wie viele Jahre ich hier nicht mehr gewesen bin bzw. geschrieben habe.^^ Damals stand ich komplett am Anfang von PHP, als ich mein Specials "golddrachen.php" hier veröffentlicht habe. Jetzt absolviere ich ein duales Studium in der Richung "Praktische Informatik" (4.Sem) und bin auf Arbeit professioneller Webentwickler im E-Commerce Bereich. Daraus folgernd haben sich meine Programmierkenntnisse drastisch erhöht
Und dann bin ich aus Langerweile auf mein altes LOGD gestoßen, wollte es auf meiner lokalen XAMPP Umgebung zu laufen bekommen (PHP 5.5.19) und es ging nix. Shit und da dachte ich, hmm wieso setzt du dich nicht ran und versuchst mit deinen Kenntnissen ein neues lauffähiges LOGD 0.9.7 zu schreiben
(Mittlerweile läuft es, da ich via vhosts 2 PHP versionen lokal betreibe. 5.2 und 5.5.19 ^^)
Und hier ist es: Jedoch da ich sehr ausgelastet bin bzgl Studium nicht so weit, wie ich es wollte. xD
Was macht dieses LOGD nun aus:
- kompletter Ansatz in OOP
- basiert auf einem einfachen Klassen/Template/View Prinzip:
-> Klassen für die Logik
-> Template für das Grunddesign
-> Views für die Anzeige
- Bootstraping und Autoloading
-> in der bootstrap.php werden alle benötigten Includes der CORE Klassen gesetzt und alle anderen via autolaoding eingebunden. Daraus folgt, dass JEDE KLASSE überall und ohne weitere
inlcudes eingesetzt werden kann!
- Templates auf CSS-Bootstrapping Basis
-> für spätere mobile Entwerfung des Games habe ich das alte Yarbrough Design neu mittels CSS Bootstrapping umgesetzt und das CSS neu geschrieben (für andere Deisgn dann auch anwendbar)
- Einfacher Erweiterbarkeit
-> Durch Klassen im Ordner "game/classes" können alle CORE Klassen erweitert werden, aber ebenso können dort die eignen Klassen eingefügt werden
-> Es können explizit Module eingebunden werden (die vllt auch dem Schema folgen soltlen, wie es bisher ist)
-> Templateerweiterbarkeit ebenso vorhanden, neue Templates die dem neuen Style folgen, werden ohne Probleme funktionieren
-> Nutzung von jquery als JS Bibliothek, so dass man in einer eignen main.js alle nötigen javaSkripte schreiben kann
-> In den Views müssen hauptsächlich nur noch die Anweisungen für addnav/addcharstat etc stehen, mehr wird dort rein theoretisch nicht benötigt, damit sie funktionsfähig ist.
- htaccess Unterstützung für späteres URL-REWRITING
- automatische Einbindung vom Standard CSS/JS vorhanden (logischerweise
)
- eigene Fonts können im jeweiligen Ordner hinterlegt und dann via CSS eingebunden werden.
- Templates basieren auf einer .php Datei, die das HTML als string zurückliefert -> mehr Dynamik in den Templates kann eingebaut werden (z.B. wenn es um Bilder geht)
- komplett dokumentierter Quelltext plus PHPDOC! (in Englisch geschrieben)
Das sollte es für den Anfang gewesen sein.
Bisher habe ich nur das Grundgerüst ohne DB-Unterstützuung fertig (Template hat aufgehalten wie sau -.-)
Jedoch hab ich im Rahmen meines Studiums schon eine Klasse geschrieben, welche ich nur noch minimal anpassen muss
Wird PHP::PDO basierend sein,
so dass es nicht direkt mysql abhängig ist.
TODO:
- DB-Unterszützung
- Passwörter werden auf eine eigene Weise gespeichert werden (direkte verschlüsselung! plus daraus resultierender Hash)
- Routing umsetzten mittels mod_rewrite und Routing Klasse
-> Bsp: /town/marktet -> index.php?viewfile=town/market
-> die routing klasse wird das dann richtig auflösen, sodass einfach die entsprechende View geladen wird ^^
-> Implementierung einer I18N Klasse (Internationalisierun), damit es einfacher wird das LOGD auf andere Sprachen anzuwenden. Und entsprechende Texte automatisch beim Laden
umgeschrieben werden.
-> todos in den PHPDOC-Kommentaren umsetzen ^^
-> Was sich eben noch ergibt
Ziel bei mir ist es natürlich auch ein LOGD zu schreiben, was auf PHP >= 5.5 lauffähig ist und es keinen großen AUfwand ist die alten Erweiterungen/Feautures neu umzuschreiben, damit diese eingebunden werden können (eben hier dann als Klasse
).
Vllt finden sich ja interessierte oder auch du Eli hast Interesse gemeinsam mitzuwirken
Wer weiß ^^ Wenn ja, kann ich nen Git Repo einrichten oder SVN xD
Würde mich über das Feedback freuen und heute Abend nach der Leipziger Buchmesse mal schauen, wer so geschrieben hat ^^.
Test-URL mit testcontent xD:
http://logd-oop.de.vu/Source:
https://github.com/nedron92/logd-oop Grüße,
Daniel