Facebook
Twitter
Google+
Kommentare
16

Projektwerkstatt: Symfony-Konfigurator

Die meisten meiner Artikel schreibe ich ja vor, was sicherlich klar sein sollte, da ich bestimmt nicht jeden morgen um sechs aufstehen will, um noch einen Artikel bis 8 Uhr fertig zu bekommen. Im Moment sitze ich gerade am Hamburger Flughafen, schaue mir Flugzeuge an und warte auf meinen eigenen Flug nach Freiburg. Und warum sollte man die Zeit nicht nutzen, um einen Artikel zu verfassen.

Wie ihr ja wisst, komme ich immer öfters berufsbedingt in Kontakt mit dem symfony Framework. Codegenerierung finde ich auch eine feine Sache. Dass man in symfony nur mit einem Befehl und einem Config-File einen kompletten Adminbereich erstellen kann, finde ich auch wunderbar.

Zumindest klingt es wunderbar. Womit ich noch Probleme habe, sind die Konfigurationsdateien. Ich habe gefühlte 1.000.000 Parameter, die ich angeben kann und all diese muss ich in eine Yaml Datei packen. Ich sehe viele Vorteile von Yaml gegenüber xml, aber bei großen strukturierten Konfigurationen würde meiner Meinung klar xml gewinnen. Eine XSD geschrieben und schon kann einem fast jede IDE behilflich sein ein valides File zu produzieren. Bei Yaml hilft einem niemand. Zumindest ist das mein Gefühl. Wir haben also Yaml Files, da kann man jetzt nichts dran ändern. Wollte mich nur mal eine Runde auskotzen.

Der Weg hin zu dieser Yaml Datei soll heute im Mittelpunkt stehen. Warum gibt es kein Hilfsprogramm, am besten mit grafischer Oberfläche, das mir behilflich bei der Erstellung ist (ich weiß, es klingt wie der typische Linux vs. Windows Bash)? Sollte doch eigentlich gar nicht so schwer sein. Ein paar Checkboxen, ein Modell auswählen und fertig. Könnte man sogar schön zentral über ein PHP Programm erledigen. Ich könnte mir vorstellen, dass eine Webseite, die einen solchen Konfigurator anbietet schnell bei symfony verlinkt wird und somit echt hoch frequentiert sein sollte.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

16 Comments

  1. Ja, das wäre wirklich mal ein nettes Tool.

    Ich habe aber bei den Generatoren noch eine Kleinigkeit die mich ärgert: Der generierte Code (z.B. eines Models) ist nicht im javs code style. Man müsste die Möglichkeit haben, das Format des Code Outputs zu formatieren. Es nervt einfach jedesmal den Code umformatieren zu müssen ='(

    Reply
  2. *grml* wie ich sowas hasse. Ne schöne, funktionierende Alternative habe ich leider auch nicht gefunden. Werde mich nochmal damit befassen wenn ich mehr Zeit habe.

    Reply
  3. Ich schätze die YAML-Konfiguration in symfony sehr, da die Angaben sehr kompakt, gut zu kopieren und vor allem auszukommentieren sind. Auch die in den Konfigurationsdateien möglichen PHP-Schnippsel empfinde ich als sehr nützlich und in XML kaum realisierbar (von einer Unterstützung durch IDEs ganz zu schweigen). Das Argument der zahlreichen möglichen Einstellungen zählt für mich nicht, wenn wie in der settings.yml alle Werte bereits (auskommentiert) aufgelistet werden und nur geändert werden müssen.

    Beim Schema ist YAML optional, Reverse Engeneering von Datenbanken möglich, dort sehe ich YAML nur als Bereicherung. Was bleibt, ist der Admin Generator. Hier verstehe ich völlig, wenn die Optionen jemanden in den Wahnsinn treiben. Die gesamte Konfiguraiton findet in einer einzigen Datei statt, die Verschachtelung ist irrsinnig, die Werte kaum dokumentiert, das Endergebnis per default eine Qual. Allein die regelmäßig auftauchende Frage, wie man eigentlich das verdammte floatende Filter-Formular los wird, sind für mich ein Indiz, dass etwas nicht stimmt. Fehlende oder zwischen Versionen umbekannte Feldtypen (plain? file_upload_tag?) versprechen tagelange Unterhaltung. Das uralte Admin-Cheat-Sheet, die restliche Doku und das gar nicht symfony-mäßige Layout/CSS-Paralleluniversum zeugen davon, welches Interesse dieser Aspekt des Projekts überhaupt genießt.

    Ich glaube aber nicht, dass eine geschwätzigere XML-Notation das Problem irgendwie beheben würde. Der Admin-Generator müsste imho viel näher an die „normale“ CRUD-Funktionalität heranwachsen, möglicherweise gar nicht mehr deklarativ konfiguriert werden. Als Beweis der Leistungsfähigkeit von sf 1.0 war der Generator cool, aber der praktische Nutzen heute ist eingeschränkt — egal wie er jetzt konfiguriert wird. Nur meine Meinung.

    Was ich zur Erleichterung der Arbeit vermisse, sind ganz andere Dinge, wie z. B. Projekt-Templates, eine Projekterstellung mit Parametern/Assistent (Name und Mail, Propel/Doctrine, SQLite/MYSql/…, sfGuard), die Entfernung des App-Layers, Migrations, brauchbares Deployment, …

    Reply
  4. Mich würde mal ein Vergleich zwischen dem Zend und dem Symphonie Framework interessieren.
    Bei mir in der Firma steht bald eine Neuentwicklung eines CMS mit Shop etc. an.
    Welches Framework bietet dafür die besseren Möglichkeiten?

    Reply
  5. @Timo: In die engere Auswahl kommen vermutlich Magento (basiert auf dem Zend Framework) und eZ Publish (E-Commerce-Features teils enthalten, teils kostenpflichtig).

    Reply
  6. Danke für die Tipps.
    Aber es sind ja bereits fertige Systeme.
    Wir planen ein Komplett neues CMS mit Shop zu entwickeln (Ich weiß nicht das Rad neu erfinden, aber wir haben bereits unser eigenes Rad und wollen dies verbessern ;)).

    Reply
  7. Pingback: ITWS

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen