(Soll keine Werbung sein, sondern nur der Wunsch nach Feedback)
ich wollte hier auch mal Fragen was Ihr davon haltet. Auszug aus der Umfrage in meinem Projekt (vor allem interessieren würde es mich natürlich, hätte sowas Zukunft?):
Vor allem möchte ich meine Engine von meinem derzeitigen Projekt komplett trennen, sodass Sie von dem Projekt zwar genutzt wird, aber alle projektbezogenen Dinge nicht mit der Engine vermischt werden, sodass Sie jederzeit alleine lauffähig und für andere Projekte benutzbar ist.
Die Leistungen der ersten Version der Engine würden dann in etwa sein:
Systemcore (Einzigartige Objekte des Systems mit Zentralem Zugriff)
Zentraler Zugriff auf Einstellungen mit Cachefunktion
Datenbankverbindung und Ausführen von SQL Statements
Zugriff auf Daten und Kapselung dieser der Cookies und der Session
Erstellung der Datenbankstruktur und Zugriff auf die Datentypen der Spalten in denTabellen
Verwaltung der Events, welche nach einer definierten Zeit einer Benutzeraktion ausgeführt werden
Sprachunterstützung auf Zugriff verschiedene Sprachvariablen der eingestellten Sprache
Seitenaufbau mit einer variablen Template Klasse mit dessen HTML Grundstruktur
Verwaltung der verschiedenen Inhaltsseiten über bis zu 4 Hierarchieebenen und Zugriffsrechte (Unterscheidung Besucher und Mitglied)
Database (Tabellenbeschreibung jeder Tabelle der Datenbank)
Zugriff und Manipulation jedes beliebigen Datensatzes über PHP Objekte mit
Hilfe der Angabe über den Primärschlüssel des Datensatzes. Des weiteren eine
automatische Erstellung der kompletten Datenbankstruktur mit allen Tabellen
Pluginclass
Jedes Plugin stellt eine Inhaltsseite dar, welche eine Ausgabe besitzt. Die
Informationen über jedes Plugin, dessen Name und Zugriffrechte werden dabei
in einer Baumstruktur in der Einstellungsdatei hinterlegt
Moduleclass
Alle Module werden auf jeder Seite abhängig vom Zugriffsrecht auf einer fest
definierten Position im Template angezeigt. Dabei gibt es folgende Module:
Inhaltsbereich, der die Ausgabe des aktuell gewählten Plugin anzeigt
Footer, der Informationen über das Projekt und sonstige wichtige Dinge zeigt
Seitennavigation mit der Navigation aller Plugin
Topnavigation mit der Navigation aller Seitenteile
Helpclass
Ausführen von SQL Statements und dessen Ausnahmebehandlung und Auswertung
Logfunktionen zum Loggen von System- und Benutzeraktionen
Klassen zum Anzeigen und Validieren verschiedener Daten
Klassen zum Zusammenbau von XML und HTML Dokumente
Navigationen und Datentabellen über eine Klasse vereinfacht definieren
Unit Tests zur Definierung von Tests für einzelne Klassen
Definierung von Formularen für Benutzereingaben und automatischer Validierung und Überprüfung dieser Eingaben
Vorraussetungen der Engine an einen Entwickler:
- PHP 5 ist Mindestvoraussetzung, da die Engine Objektorientierung und Exception Handling besitzt
- Umgang mit Klassen und Exceptions sollten kein Problem sein (Jedes Modul und jedes Plugin ist eine Klasse)
- Einhaltung der Strukturen für neue Plugin, Module, Einstellungsdateien, Sprachdateien (Verzeichnisstruktur und Schnittstellen)
- Zusammenbau des fertigen HTML Dokumentes mit einer Writer Klasse
Weitere Dinge die ich bei der Engine machen will (falls Sie von anderen Projekten benutzt wird):
- Jede einzelne Datei (Klasse, Einstellung, Sprachdatei) ist unabhängig der Engine im eigenen Projekt überschreibbar, ohne die Engine ändern zu müssen
- Jeder Offizielle Benutzer wird über Neuerungen, Sicherheitsupdates und Fehlerbereinigungen informiert
- Von den einzelnen Versionen wird es Update Pakete geben, mit den geänderten Dateien
- Zwischen den Versionen gibt es kleinere Pakete (oder auch komplette Versionen) bei kritischen Fehlern oder Sicherheitslücken
- Organisation der Engine mit News, Bugtracker und Forum ist getrennt von den Projekten