[Quicktip] Symfony2 / Doctrine Schema Update funktioniert nicht und liefert keine Ausgabe

Die Logging Mechanismen von Symfony2 sind manchmal nicht ganz durchschaubar: wenn irgendwas in den Entities nicht stimmt, kann es sein, dass die Schema Validierung oder auch das Schema Update beim Aufruf des entsprechenden Konsolenkommandos kommentarlos beendet werden. In diesem Fall prüft intensiv, dass die Namespaces und auch die Annotations innerhalb der Entities sowie den Repositories korrekt sind!

[Quicktip] Symfony2 Framework läuft nach Update auf Version 2.3.3 nicht mehr

Nachdem ich eine Symfony2 Installation auf die neueste Version 2.3.3 per Composer geupdatet hatte, bekam ich auf dem Zielsystem per app/console immer wieder die Fehlermeldung

[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
  The parameter "kernel.trusted_hosts" must be defined.

präsentiert. Scheinbar haben diesen Fehler nicht allzu viele Leute, eine Google Suche brachte keine Ergebnisse. Die Formulierung der Fehlermeldung ist auch relativ ungünstig, denn es fehlt kein Parameter, sondern ein Config Eintrag. Kurz gesagt, müsst ihr folgende Zeile in euere app/config/config.yml Datei eintragen:

...
framework:
    ...
    fragments:       ~
    trusted_hosts:   ~
...

Anschließend sollte die Symfony2 Console sowie das System an sich wieder laufen.

[Quicktip] Symfony2 bringt weiße Seite und keinen Eintrag in den Error Logs

Wenn auch euch dieser Fehler begegnen sollte und ihr nicht mehr weiter wisst: prüft, ob in euren Config Dateien (bei mir war es die service.yml) die Keys (also z.B. der Name eines Service) ungültige Zeichen enthalten – wie z.b. Bindestriche 😉

[Symfony2] Wie kann man bei einem Repository findAll eine Sortierung setzen?

Mit den Magic Methoden der Symfony Repositories kann bekommt man automatisch Methoden wie findBy[Feldname] oder findAll bereitgestellt. Mit dabei ist jedoch keine direkte Möglichkeit, die Ergebnisse bereits zu sortieren. Über einen kleinen Trick geht aber auch das:

Möchte man ein findAll umsetzen, sieht der Code so aus:

$repository->findBy(array(), array('name' => 'asc'));

Jetzt werden alle Entities für dieses Repository geladen, jedoch erfolgt die entsprechende Query mit einem “ORDER BY name ASC”. Möchte man das findAll in eine spezifizierte Suche umwandeln, muss man das erste Array einfach mit dem gewünschten Feldnamen und dem zu suchenden Wert befüllen:

$repository->findBy(array('active' => 1), array('name' => 'asc'));