Programmierung eines Frameworks

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Programmierung eines Frameworks

    Hi,

    ich habe vor mir evtl. ein kleines Framework aus verschiedenen Klassen zu bauen. Wir euch sicherlich klar ist, besteht darin eine Menge Arbeit und möchte euch somit fragen ob ihr vielleicht Interesse habt, daran mitzuwirken?

    Das ganze stelle ich mir so ähnlich vor wie PEAR, jedoch komplett in PHP5 geschrieben und für das Fehlerhandlung kommen die neu eingeführten Exceptions zum Einsatz. Des Weiteren muss es eine einheitliche API geben, wie z.B. Konfigurationen den entsprechenden Klassen mit übergeben werden.

    Geplant habe ich folgende Hauptklassen:
    - Exception, davon werden alle Exceptions abgeleitet; beinhalten grundlegende Eigenschaften, wie z.B. Debug-Level, etc.)
    - Template, angepasste API für Smarty
    - Formular, speziell für die o.g. Template-Engine angepasst
    - Datenbank-Abstraktion, Unterstützung von MySQL, Oracle, ODBC, PostgreSQL, SQLite und XML/Datei.
    - Konfiguration, speichert alle wichtigen grundlegenden Einstellungen für alle Klassen; bietet somit eine gemeinsam nutzbare Schnittstelle.
    - Language, in Template-Engine eingebettet. Daten liegen als Konfigurationsdatei vor (ini-File).

    Bis auf die Formular-Klasse stehen alle Klassen bereits mehr oder weniger. Es ist aber auf jeden Fall noch einiges an Arbeit. Die DB- und Template-Klasse werfen z.B. noch keine Exception.

    Bei den Exceptions soll es so sein, dass alle Fehler eine eigene Exception bekommt. An dieser Stelle würde ich viel aus der Java-Welt „mitnehmen“, z.B. FileNotFoundException, SqlException, etc.

    Wahrscheinlich werdet ihr euch fragen, warum ich das Rad neu erfinden will?! Eigentlich gibt es zwei Gründe dafür:
    1.) Mein Hauptaspekt liegt darin, möglichst viel zu lernen. Bei solchen Projekten geht es mir nicht nur um PHP, sondern auch um Teamarbeit, Projektplanung, Erstellungen von Konzepten, etc.
    2.) PEAR ist, meiner Meinung nach (!), mittlerweile ziemlich aufgebläht, mit unnützen Funktionen. Außerdem gefällt mir die Schnittstelle nicht. Bei jeder Klasse werden Parameter anders übergeben, z.B. als Array im Konstruktor, bei der anderen Klassen müssen alle Werte einzeln übergeben werden, usw. Ich finde, dass das ganze dadurch sehr unübersichtlich wird.

    HTML_QuickForm:
    Das nächste Problem, z.B. von HTML_QuickForm besteht darin, das in Verbindung mit Smarty keine strikte Trennung von Design und Code stattfindet, weil z.B. die Breite der Formulare im Source und nicht im Template angegeben werden.

    Mehrsprachigkeit:
    Eine Mehrsprachigkeit mit QuickForm und Smarty ist auch nicht gerade einfach und übersichtlich zu bewerkstelligen. Es wäre doch viel einfach, wenn sich die Template-Engine über eine Language-Klasse die entsprechenden Texte direkt aus einer Textdatei oder Datenbank zieht. Sie müsste doch gar nicht erst kompliziert übergeben werden.

    Datenbank
    Als nächstes Beispiel nehme ich die Pear-Klasse DB. Durch den enormen Funktionsumfang, ist die Klasse furchtbar langsam und eine Migration von funktioniert auch nicht so einfach, weil die Datentypen der unterschiedlichen DBMS immer gleich behandelt werden, bzw. im Sourcecode steht. Möchte ich eine Spalte hinzufügen, bin ich bei DB dazu fast verpflichtet den Datentyp anzugeben. Es wäre an dieser Stelle sinnvoller z.B. Dummydatentypen mit entsprechender Länge anzugeben. Die Klasse würde dann automatisch den richtigen Datentyp verwenden. Z.B. verwendet man bei Oracle nicht den Datentyp VARCHAR sondern VARCHAR2. Unterschied besteht auch darin, das VARCHAR2 bis zu 2000 Zeichen speichern kann. VARCHAR hingegen nur 255.

    Ich suche also noch ca. 2-3 Personen, die Interesse hätten an dem Projekt mitzuwirken. Das ganze soll als Open-Source laufen und kann daher nicht bezahlt werden. Hoffe mal, dass ihr das versteht und so was nicht nur wegen dem Geld macht. Wären die PHP-Entwickler auch dieser Meinung, würde PHP wie ASP enden.

    Um die Teamarbeit zu erleichtern, würden sämtliche Sourcen in einem CVS gespeichert werden.

    Um noch mal auf die Personen zurückzukommen: Die wichtigste Vorrausetzung ist die Teamarbeit. Außerdem erwarte ich gute bis sehr gute PHP-Kenntnisse. Außerdem sind schon etwas mehr als die Grundlagen der OOP notwenig, worunter auch das Prinzip des Exception-Handlings fällt. Wünschenswert wäre noch zusätzliche Wissen, wie CVS, UML oder auch Java, Konzeption und Planung, etc.

    Natürlich müssen auch Dokumentationen (PHP-Doc, Tutorials und Manual) erstellt werden, die evtl. auch Übersetzer benötigen.

    Bereits mit an Board, sind DIE drei aktivsten User bzw. tlw. auch Moderatoren von php.de: Ben, Guradia und meikel (siehe hier! ).

    Wenn ihr Interesse habt, meldet euch bei mir per Mail, ICQ, MSN oder über dieses Forum hier.

    Viele Grüße,
    Dennis

    PS.: Bevor ihr glaubt, dass es wieder jemand ist, der an Selbstüberschätzung leidet: Ich bin Mitentwickler einer Anwendung mit 10.000 Usern bei der Deutschen Bank. Nur das so zur Info.
    PSS.: Bitte entschuldigt, wenn sich das etwas komisch ließt, habe es nicht Korrektur gelesen.

    EDIT: Ein allgemeines Konzept ist bereits so gut wie fertig. Das techn. Konzept wird anschließend begonnen.
    Zuletzt geändert von Quadaptor; 13.06.2004, 14:24.
Lädt...
X