• Projektwerkstatt: Symfony Konfigurator

    von Nils Langner am 25. Mai 2009

    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.

    Nils Langner Nils Langner

    Auch wenn Ihr es mir nicht glauben werdet, aber ich habe nichts gegen PHP. Ich rege mich einfach nur gerne auf. Ok so schlimm ist es auch nicht. Eigentlich wollte ich schon immer einen Blog haben und da ...

    Zum Profil von Nils Langner

    16 Kommentare »


    • ghost
      am 25. Mai 2009 um 09:32 Uhr

      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 =’(


    • Nils Langner
      am 25. Mai 2009 um 09:37 Uhr

      Eigentlich könnte man doch da ganz einfach den CodeBeautifier verwenden. Den müsste man nur irgendwie dazwischenschalten.


    • ghost
      am 25. Mai 2009 um 10:19 Uhr

      Klingt gut. Schönes Tool =)

      Mal sehen, ob ich damit was hinbekomme.


    • Nils Langner
      am 25. Mai 2009 um 11:52 Uhr

      @ghost: Sag bescheid, wenn du was gebastelt hast, dann stellen wir das hier zum Download oder verlinken deinen Blog.


    • ghost
      am 25. Mai 2009 um 12:13 Uhr

      Jup, gerne. Ich ging mal davon aus, dass du dieses Tool hier gemeint hast, oder? http://www.waterproof.fr/products/phpCodeBeautifier/

      Nur doof, dass man sich dort registrieren muss =/


    • Nils Langner
      am 25. Mai 2009 um 12:47 Uhr

      Ja genau das meinte ich. Wusste aber auch nicht mehr, dass man sich registrieren muss.


    • ghost
      am 25. Mai 2009 um 12:59 Uhr

      *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.


    • rbq
      am 25. Mai 2009 um 14:42 Uhr

      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, …


    • Timo
      am 25. Mai 2009 um 17:00 Uhr

      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?


    • Nils Langner
      am 25. Mai 2009 um 19:37 Uhr

      @Timo: Ich tippe mal drauf, dass beide Frameworks sich nichts schenken. Aber ein eigenes CMS/Shop würde ich mit beiden nicht programmieren ;)


    • Timo
      am 25. Mai 2009 um 19:55 Uhr

      Was würdest du denn empfehlen um ein CMS/Shop zu programmieren?


    • Nils Langner
      am 25. Mai 2009 um 20:00 Uhr

      @rbq: Danke übrigens für deinen ausführlichen Kommentar.


    • rbq
      am 25. Mai 2009 um 20:59 Uhr

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


    • Timo
      am 25. Mai 2009 um 22:04 Uhr

      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 ;) ).


    • ITWS
      am 28. Mai 2009 um 12:33 Uhr

      [Symfony] Coding Style…

      So viel zum Thema “ich schreibe jeden Tag einen Beitrag”. Schaffe ich ja anscheinend nicht. Liegt wohl daran, dass mir entweder die Zeit fehlt oder ich plötzlich viel zu erzählen habe, so wie heute.

      Nun mal zum eigentlichen Eintrag. Ich hatte mi…


    • Jörg
      am 24. Mai 2010 um 11:36 Uhr

      Evt. könnte die YAML component aus den Symfony-components hilfreich sein um einen converter zu schreiben.

      http://components.symfony-project.org/yaml/

      greetz

    RSS-Feed für Kommentare zu diesem Artikel. TrackBack-URL

    Einen Kommentar hinterlassen

    Werbung
    PHP Magazin
    Ausgabe 02/2010

    Dieses Mal mit Artikeln zu den Themen OpenSocial und Apache Shindig, Graphentheorie, Smarty3

    t3n
    Ausgabe 19

    Social Media (R)evolution. Weitere Themen sind noSQL, Crowdsourcing ...

    PHP Journal
    Ausgabe 2/2010

    PHP & Windows optimal nutzen, die besten PHP-CMS im Überblick, Google-API mit Zend Framework nutzen.

    Wir wurden schon öfters gefragt, ob man uns nicht irgendwie unterstützen kann. Die Antwort war immer einfach: Klar! Am einfachsten ist es eure nächsten Einkäufe bei Amazon über unsere Link abzuwickeln. Damit würdet ihr uns schon sehr helfen. Über Co-Autoren freuen wir uns aber noch mehr.