[linux-l] Bash_Script von Browser. Hilfe!

Olaf Radicke briefkasten at olaf-radicke.de
So Apr 7 09:44:34 CEST 2013


Hallo Peter!

> Peter Ross <Peter.Ross at bogen.in-berlin.de> hat am 7. April 2013 um 02:08
> geschrieben:
>
>
> On Sat, 6 Apr 2013, Olaf Radicke wrote:
>
> > Ich habe aber immer noch nicht verstanden welches Tool von Symfony nun
> > diesen PHP-Code generiert. Und was die Ausgangsdaten sind.
>
> Hier ist mein "basic deployment" von Symfony 1:
>
> # Create basic directory structure
> mkdir ${project}
> cd ${project}
> mkdir -p lib/vendor
> tar -xzof ${symfony_tgz} -C lib/vendor
> unpacked=`ls -d lib/vendor/*`
> mv ${unpacked} lib/vendor/symfony
>
> # Create an application
> php lib/vendor/symfony/data/bin/symfony generate:project ${project}
> php symfony generate:app frontend
> chmod 777 cache/ log/
> php symfony configure:database
> "mysql:host=${mysql_server};dbname=${mysql_db}" ${mysql_user} ${mysql_pw}
> php symfony plugin:install sfDoctrineGuardPlugin
> php symfony plugin:install sfFormExtraPlugin
> cp ${schema} config/doctrine/schema.yml
> php symfony doctrine:build --all --and-load
> php symfony generate:app backend
> tables=`cat config/doctrine/schema.yml  | awk -F':' '{if
> (substr($0,1,1)!=" ") print $1}'`
> for t in ${tables}; do
>     module=`echo $t | tr [:upper:] [:lower:]`
>     php symfony doctrine:generate-admin backend ${t} --module=${module}
> done
>
> Die "php symfony"-Kommandos sind die, die etwas generieren.

Hmmm, in config/doctrine/schema.yml stehen in einer yml-Notation
die DB-Schema. Hab hier mal ein (Symfony 1.x-)Beispiel gefunden:
http://snippets.symfony-project.org/snippets/tagged/doctrine/order_by/date

In der Doku "The Book" von Symfony 2.x ist ab Seite 87 Doctrine beschrieben.
Da ist dieser Ansatz aber nicht beschrieben. Vielleicht ist das bei
Symfony 2.x raus geflogen. Auf Seite 107 wird gesagt es gäbe noch weiter
Tools von Drittanbietern zu Doctrine. Vielleicht ist es jetzt
dort irgend wo.

Ein Tool was ich gesehen habe und mit wenig Erfolg benutzt habe war

app/console doctrine:generates:entites <clas>

Es soll die getter und setter generieren. Bei mir hat es ganichts generiert.
Aber immer hin, es hat auch nichts kaputtgemacht...

Ab Seite 99 wird dann erklärt, wie Klassen mit Tabellen verknüpft werden.
Dazu wird dann eine PHP Annotation verwendet.

Und hier sieht man wieder wie unausgegoren PHP ist! Die PHP Annotation
sehen aus wie Doxygen-Kommentare. Das richt nicht nur nach Ärger, das
stinkt schon! Wie man auf solch eine Bescherte Idee kommen konnte ist
mir völlig schleierhaft!

Das ist auch schon anderen aufgefallen:
http://web-union.de/404

Ich fand schon die Idee völlig verkorkst Namensräume durch "\" zu trennen.
Die Idee Klassen-Methoden mit "->" aufzurufen ist - aus meiner Sicht -
auch super hässlich. Aber das war wohl nötig, weil die PHP-Programmierer
zu vor schon auf die bescheuerte Idee kamen Strings mit "." statt, wie
in allen anderen Sprachenen", mit "." zu verbinden.

Aber gut ich komme vom Thema ab...


> Ich bin zugegegebenermaßen mit Symfony 1 so vertraut, daß es mir
> Schwierigkeiten bereitet, Symfony 2 zu verstehen. Es ist schon ziemlich
> anders.. allerdings vielversprechend.

Das ist aber ein generelles Problem der meisten WebFrameWorks: Ihre
Kurzlebigkeit. Und das ist das was mir in der C/C++-Welt gefällt. 20 Jahre
alten Code kann ich in C++ immer noch problemlos übersetzen.

Symfony 1.4 kam November 2009 raus und hatte 3 Jahre (sic!) Support und
der ist schon ausgelaufen. Symfony 2.2 hat sagenumwobene 8 Monate Support!

Ich kann mich einfach nicht des Eindrucks erwähren, das man mit PHP
grundsätzlich, schon per Definition nur Einweg-Software schreibt. Das
motiviert mich wenig, mich darauf einzulassen.

MfG

Olaf



Mehr Informationen über die Mailingliste linux-l