symfony学习笔记---1.2 symdony结构

<来自 https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-symfony/vous-avez-dit-symfony>


1 文件结构 L'architecture de fichier

     目录列表 Liste des répertoires

  • app

  • bin

  • src

  • tests

  • var

  • vendor

  • web

    /app : 包含所有有关你网站的东西,除了他们的源代码,目的是为了区分。在symfony中,一个网站项目被视作一个application。

    /bin : 系统源文件

    /src :(主要)放网站源代码的,代码以bundles形式被组织。

    /tests:放测试文件的

    /vendor : 所有外部库(bibliothèques externes)

    /var : log,cache等,系统自动记录的

    /web:放目的给访客的文件(image,css,js等),前端控制器le contrôleur frontal (front controllerapp.phpapp_dev.php. 是访客唯一能访问的目录。

有两个app.php:一个给访客,一个给开发调试。是两个工作环境


Concrètement, que « contrôle » le contrôleur frontal ?

Q:谁控制前端控制器?

A: 它其实是一个进入网站的入口,所以他被视作一个文件。

概念结构 L'architecture conceptuelle

遵循MVC结构(Modèle / Vue / Contrôleur)

    Le Contrôleur (ou Controller) : 管理处理访客发出的HTTP请求

    Le Modèle (ou Model) : 管理数据和内容。是一个抽象层(C'est une couche d'abstraction.)

    La Vue (ou View) : 显示页面

一个请求在symfony中怎么运行:

symfony学习笔记---1.2 symdony结构

1. 访客请求页面/platform

2. 前端控制器接受请求转交给kernel

3. kernel向路由器(routeur)要求哪个控制器执行这个URL /platform。routeur是symfony的一个组件,他最后告诉kernel执行控制器OCPlatform:Advert

4. kernel执行这个控制器。该控制器向modelAnnonce要求liste des annoncesListeAnnonces和la donne à la vue,为了能生成网页。

图片中绿色的是MVC,需要我们开发。橙色的是kernel和routeur,需要我们配置;灰色的不需要动。


BUNDLES

un bundle est une brique de votre application.

在symfony中,一个Bundle是相关功能的程序集合,比如所有有关blog的集合。


bundle社区:http://knpbundles.com


其中几种bundle:

FOSUserBundle :用来管理用户,包含model utilisateur,controller用来实现各种操作(登入,注册,修改用户等),还有view。

等等。。


bundle结构

包含包括MVC结构,class等很多东西,总之是所用与实现bundle功能相关的东西。下面是bundle的目录结构:

/Controller          | Contient vos contrôleurs
/DependencyInjection | Contient des informations sur votre bundle (chargement automatique de la configuration par exemple)
/Entity              | Contient vos modèles
/Form                | Contient vos éventuels formulaires
/Resources
-- /config             | Contient les fichiers de configuration de votre bundle (nous placerons les routes ici, par exemple)
-- /public             | Contient les fichiers publics de votre bundle : fichiers CSS et JavaScript, images, etc.
-- /views              | Contient les vues de notre bundle, les templates Twig


总结:

  • Symfony est organisé en six répertoires : app, bin , src, var , vendor et web. 包含六个目录

  • Le répertoire dans lequel on passera le plus de temps est src, il contient le code source de notre site. 我们使用最多的是src目录,包含源代码

  • Il existe deux environnements de travail : 两种工作环境。

    • L'environnement « prod » est destiné à vos visiteurs : il est rapide à exécuter, et ne divulgue pas les messages d'erreur.  prod给访客

    • L'environnement « dev » est destiné au développeur, c'est-à-dire vous : il est plus lent, mais offre plein d'informations utiles au développement. dev给开发者

  • Symfony utilise l'architecture MVC pour bien organiser les différentes parties du code source. 使用MVC结构

  • Un bundle est une brique de votre application : il contient tout ce qui concerne une fonctionnalité donnée. Cela permet de bien organiser les différentes parties de votre site.  bundle是用来实现给定功能的程序块。

  • Il existe des milliers de bundles développés par la communauté, pensez à vérifier qu'il n'existe pas déjà un bundle qui fait ce que vous souhaitez faire !  在bundle社区存在很多bundles