Archiv für die Kategorie ‘PHP’

Symfony Fillin Problem

Freitag, 20. Juni 2008

Hi,

gestern im Büro saß ich bestimmt 2 Stunden an einem Problem, dass Symfony trotz “fillin” nicht die Formularfelder vorausgefüllt hat.

Im Internet konnte ich keine Lösung finden, auch wenn schon einige dieses Problem hatten. Durch durchsuchen des Quelltextes von Symfony bin ich auch dann auf (meinen) Fehler gekommen.

Sobald mehrere Formulare sich auf einer Seite befinden, muss(!) der Name des Formulars bei den “Fillin” Parametern mit angegeben werden - da Symfony  ansonsten das erste Formular auf der Seite auswertet.

Grundsätzlich ist also zu sagen: Wenn Fillin im Validator benutzt wird, sollte immer der Name des Forms mit übergeben werden - um spätere Probleme direkt auszuschließen.

MySQL Update mit Symfony

Mittwoch, 18. Juni 2008

Es gibt mehrere Möglichkeiten mit dem PHP Framework Symfony mehrere Zeilen einer Datenbank (in unserem Fall MySQL) zu updaten.

Nehmen wir den Befehl:

UPDATE user SET active=0 WHERE password=1234

Die erste (und offensichtliche) Möglichkeit lautet, alle User mit dem Passwort ‘1234′ mithilfe eines Criteria auszulesen - um dann mittels einer foreach Schleife einzelnt die Datensätze durchlaufen und upzudaten.

Allerdings verbraucht diese Möglichkeit unnötig viel Resourcen, weil X+1 SQL-Querys ausgeführt werden.

Um dieses zu vermeiden, gibt es einen schöneren Weg über die BasePeer Class von Symfony:

$con = Propel::getConnection();

// — Select Anweisung (steht also im WHERE Teil)
$c_select = new Criteria();
$c_select->add(UserPeer::ACTIVE, 0);

// — Eigentliche Update Anweisung
$c_update = new Criteria();
$c_update->add(UserPeer::PASSWORD, 1234);

BasePeer::doUpdate($c_select, $c_update, $con);

Mittels diesen kleinen Symfony Snippets ist es also Möglich, schnell mehrere Zeilen in einer Tabelle Resourcen schonend  zu updaten.

Im oberen Beispiel wird nämlich genau 1 Query ausgeführt. Also haben wir eine Erspannis von X MySQL- Querys.

Einarbeitung in Symfony

Donnerstag, 06. März 2008

Moin,

wir haben uns in der Firma jetzt überlegt ein großes Projekt auf Symfony umzubauen.

Symfony ist ein ziemlich geniales PHP5 Framework - welches vergleichbar mit Ruby On Rails ist.

Symfony unterstützt einen erfahrenen Webentwickler ziemlich in der Programmierung.

Einige der vielen Features:

  • Template System
  • Caching System
  • URL-Routing System
  • Multilanguage (I18N) Support
  • Ajax
  • … :)