Symfony - Architecture

Symfony est essentiellement une collection de composants et de bundles de haute qualité. Les composants sont une collection de classes fournissant une seule fonctionnalité de base. Par exemple,Cache componentfournit une fonctionnalité de cache, qui peut être ajoutée à n'importe quelle application. Les composants sont des éléments constitutifs d'une application Symfony. Symfony a plus de 30 composants de haute qualité, qui sont utilisés dans de nombreux frameworks PHP tels que Laravel, Silex, etc.

Les bundles sont similaires au plugin mais faciles à créer et à utiliser. En fait, une application Symfony est elle-même un bundle composé d'autres bundles. Un seul bundle peut utiliser n'importe quel nombre de composants Symfony et également des composants tiers pour fournir des fonctionnalités telles que Webframework, accès à la base de données, etc. options pour écrire une application Web.

La relation entre les composants, les bundles et l'application Symfony est spécifiée dans le diagramme suivant.

Framework Web

Symfony est principalement conçu pour écrire des applications Web de haute qualité avec une relative facilité. Il fournit diverses options pour écrire différents types d'applications Web, du simple site Web aux services Web avancés basés sur REST. Symfony fournit un framework Web sous forme de bundles séparés. Les bundles courants utilisés dans le framework Web Symfony sont les suivants:

  • FrameworkBundle
  • FrameworkExtraBundle
  • DoctrineBundle

Le framework Web Symfony est basé sur l'architecture Model-View-Controller (MVC). Model représente la structure de nos entités commerciales. View montre les modèles à l'utilisateur de la meilleure façon possible en fonction de la situation. Controller gère toute la demande de l'utilisateur, effectue le travail réel en interagissant avec Model et fournit enfin à la vue les données nécessaires pour la montrer à l'utilisateur.

Le framework Web Symfony fournit toutes les fonctionnalités de haut niveau requises pour une application de niveau entreprise. Voici un flux de travail simple de l'application Web Symfony.

Le flux de travail comprend les étapes suivantes.

Step 1 - L'utilisateur envoie une demande à l'application via le navigateur, par exemple http://www.symfonyexample.com/index.

Step 2 - Le navigateur enverra une requête au serveur Web, disons le serveur Web Apache.

Step 3 - Le serveur Web transmettra la demande au PHP sous-jacent, qui à son tour l'envoie au framework Web Symfony.

Step 4- HttpKernel est le composant principal du framework Web Symfony. HttpKernel résout le contrôleur de la demande donnée à l'aide du composant de routage et transmet la demande au contrôleur cible.

Step 5 - Toute la logique métier a lieu dans le contrôleur cible.

Step 6 - Le contrôleur interagira avec Model, qui à son tour interagit avec Datasource via Doctrine ORM.

Step 7 - Une fois que le contrôleur a terminé le processus, il génère la réponse lui-même ou via View Engine, et la renvoie au serveur Web.

Step 8 - Enfin, la réponse sera envoyée au navigateur demandé par le serveur Web.