Hallo Leser,
diese Woche habe ich mich mit einem Problem beschäftigt das mir sehr am Herzen lag.
Zeit sparen in der Entwicklung.
Nachdem ich ein Datenbank Design fertig gestellt hatte ging es wie immer damit los die Models in PHP nieder zu schreiben. Anschließend noch die Lade und Speicher Routine einzufügen und die verschiedenen Objekte des erstellten Objektes zu laden.
Hier gehen schon einige Stunden ins Land und diese Zeit hab ich persönlich einfach nicht um Produktiv arbeiten zu können. Ich muss dazu sagen das ich in meinen Entwicklungen nur auf 3 Frameworks zurückgreife.
Zumeinen Smarty als Template Engine dann noch Xajax für, na klar, Ajax Implementationen und zu guter letzt JQuery für das Frontend. So das ich bei Projekten fast bei 0 Anfange. Das Grundgerüst der Applikation steht in 10 Minuten mit autoload, funktionstüchtiger Template Engine und meiner Xajax Autoload Klasse um die entsprechenden Objekte einzubinden die Ajax Requeste verarbeiten.
Also habe ich beschlossen mir die Arbeit der Modele zu erleichtern und nur noch die Controller und Applikationslogik zu schreiben was mir persönlich viel zeit sparen wird.
Was macht der Generator?
Nach dem ich ihm das Datenbank Schema zugewiesen habe, welche ich immer mit MySQL Workbench erstelle, beginnt der Generator alle Tabellen und deren Spalten auszulesen. Er generiert die Einträge der Objekteigenschaften und anschließend die Get und Set Methoden. In diesen Methoden prüft der Generator noch ob das Feld ein Prim Key einer anderen Tabelle ist und bereitet die Set Methode dafür vor das entsprechende Objekt zu laden. Anhand der Spalten kann gleichzeitig die Prüfroutine des Wertes implementiert werden, sprich Type und Länge des Wertes. Hinzu kommt noch ein Change Array das Änderungen der Set Methoden registriert und im __destruct verarbeitet. Hier werden dann die Änderungen automatisch in der Datenbank aktualisiert Dies hat den Vorteil das ich mich um die Objekt Speicherung nicht mehr kümmern muss und in der Logik der Anwendung nur noch mit den Set und Get Parametern arbeite. Im __Constructor wird das Objekt und alle Verweise an Objekten anhand der eigenen Id initialisiert. Natürlich nur wenn auch eine Id gesetzt ist.
Nachdem alle Methoden und Eigenschaften im Objekt Array gesetzt sind wird das Objekt in einen Definierten Ordner der Applikation geschrieben und über den autoload eingebunde.
Bei Datenbankentwürfen mit vielen Tabellen ist dies ein erheblicher Zeitsparer der sich natürlich auch zu Gunsten der Kunden auswirkt.
SQL Anweisung für das Auslesen der Datenbank:
„Show Tables;“ – gibt alle Tabellen des Schemas aus.
„SHOW COLUMNS FROM $table“; – gibt alle Spalten der Tabelle aus. Inkl. Key, Type und Default Wert
Der Generator an sich besteht nur aus ein paar Schleifen und einem Schreibvorgang für Datein.
Wünsche Euch Viel Spaß euch auch einen Generator zu basteln.