Der offizielle Symfony Best Practice Guide

  • Tutorial
Fabien Potencier, der Symfony-Manager, hat vor einigen Tagen einen Entwurf des Best-Practice-Leitfadens für die Entwicklung von Anwendungen mit Symfony als Framework vorgestellt (ich erinnere Sie daran, dass dies auch eine Reihe unabhängiger Komponenten ist).
Wir wissen, wie schwierig es ist, alte Gewohnheiten zu verlieren, und einige Tipps werden Sie schockieren, aber wenn Sie ihnen folgen, können Sie Anwendungen schneller entwickeln, sie weniger komplex und gleichzeitig besser machen.
In jedem Fall sollten Sie daran denken, dass dies nur Empfehlungen sind und Ihr Team nicht verpflichtet ist, diese zu befolgen. Sie können Ihre Ansätze weiterhin verwenden. Symfony ist flexibel genug, um alle Anforderungen zu erfüllen, und dies wird sich nie ändern.

Unter dem Schnitt habe ich die wichtigsten Thesen herausgeschrieben, von denen die meisten im Buch ausführlich diskutiert werden, an einigen "schockierenden" Stellen gibt es neben der These eine kleine Erklärung.

  • Verwenden Sie immer Composer , um Symfony zu installieren.
  • Erstellen Sie nur ein Bundle für die Anwendungslogik. Ein Bundle ist eine eigenständige Komponente, die später wiederverwendet werden kann. Ihre Anwendung verfügt beispielsweise über ein UserBundle und ein ProductBundle. Höchstwahrscheinlich wird das ProductBundle ohne das UserBundle nicht korrekt funktionieren, und dies ist nicht korrekt.
  • Umgebungsparameter (Datenbank, Protokolle) und Anwendungen werden in der Datei beschrieben app/config/parameters.yml.
  • Die Standardeinstellungen für Umgebung und Anwendung sind in beschrieben app/config/parameters.yml.dist.
  • Beschreiben Sie unveränderliche Parameter in Konstanten (direkt in app/config/parameters.yml).
  • Die Namen Ihrer Dienste sollten so kurz und einfach wie möglich sein, idealerweise sollte es sich um ein Wort handeln (z. B. Slugger, Geocoder).
  • Verwenden Sie YAML, um Anwendungsdienste zu definieren.
  • Definieren Sie mithilfe von Doctrine ORM ein Schema mit Anmerkungen. Alle Konfigurationsformate haben die gleiche Leistung.
  • Anwendungscontroller sollten erben Symfony\Bundle\FrameworkBundle\Controller\Controllerund Anmerkungen für Routing und Caching verwenden, wann immer dies möglich ist.
  • Verwenden Sie keine Annotation @Template(), um die vom Controller verwendete Vorlage anzupassen. Anmerkungen sind nützlich, funktionieren aber "magisch", daher wird empfohlen, sie nicht zu verwenden. Die Verwendung dieser Anmerkung verlangsamt Ihre Anwendung außerdem um 21 ms.
  • Verwenden Sie die automatische Parameterkonvertierung, wenn dies nützlich und praktisch ist
    /**
    * @Route("/{id}", name="admin_post_show")
    */
    public function showAction(Post $post)
    

  • Als Vorlage verwenden Sie Twig .
  • Speichern Sie Ihre Vorlagen in einem Verzeichnis app/Resources/views/.
  • Erstellen Sie für jedes Formular eine Klasse.
  • Fügen Sie Schaltflächen in die Vorlage ein, nicht in den PHP-Code.
  • Verwenden Sie für Übertragungen das XLIFF-Format.
  • Speichern Sie die Übersetzungsdateien in app/Resources/translations/.
  • Verwenden Sie zum Übersetzen immer Schlüsselwörter anstelle von Text. Zum Beispiel nicht Username, aber label.username.
  • Wenn Ihre Anwendung über zwei Autorisierungsoptionen verfügt, wird empfohlen, eine Firewall mit aktivierter Option zu verwenden anonymous.
  • Verwenden Sie einen Algorithmus bcryptzum Hashing von Benutzerkennwörtern.
  • Verwenden Sie, um Berechtigungen automatisch nach URL zu überprüfen access_control. Verwenden Sie nach Möglichkeit Anmerkungen @Security. Verwenden Sie den Dienst in komplexeren Situationen security.context.
  • Speichern Sie statische Daten (Assets) in einem Verzeichnis web/.
  • Verwenden Sie Assetic für die Statikverarbeitung oder andere ähnliche Tools, beispielsweise GruntJS .
  • Wenn Sie Front-End-Frameworks wie AngularJS verwenden , müssen Sie Front-End und Back-End in zwei Projekte unterteilen.
  • Schreiben Sie mindestens Funktionstests, um sicherzustellen, dass die Anwendungsseiten erfolgreich geladen werden. Codieren Sie die URL der Seite fest, anstatt sie zu verwenden UrlGenerator.

Jetzt auch beliebt: