développement dapplication web larchitecture 1. problématique comment faire une application qui...
TRANSCRIPT
1
S
Développement d’application web
L’architecture
2
Problématique
Comment faire une application qui soit: Facilement maintenable Évolutive Avec une gestion simple du contenu
3
Solution
La séparation des « problèmes » (separation of concerns)
Architecture en couches Couche présentation Couche données Couche métier
Les couches données et métier ne doivent pas dépendre de la couche présentation
4
Solution
Modèle MVC
5
Solution
Structurer soi-même l’application
Utiliser un framework Force à structurer son application Communauté:
Toute personne connaissant le framework comprendra plus vite le code de l’application
Présence d’extensions et d’aides facilitant la mise en place de certaines tâches récurrentes et rébarbatives
Coût d’apprentissage non négligeable
6
Qui ?
7
Quel ?
8
Avantages ?
Séparation des couches
Faciliter les tests
Modulaire
Utilitaires de debug et d’analyse de performances
Maintenu, communauté
…
9
Ce que nous utiliserons
Système d’exploitation: Linux
Serveur web: Apache2
Framework: Symfony2
SCM: Git
Base de données: MySQL
Obligatoire ?
10
Symfony
Composer Gestionnaire de dépendances PHP
Twig Système de template
Doctrine ORM (Object Relational Mapping)
11
Sources d’information
La documentation officielle: http://symfony.com/doc/current/index.html
Le forum officiel: http://forum.symfony-project.org/
12
Symfony: structure
13
Symfony: app/
14
Symfony: app/config/
15
Symfony: src/
16
Symfony: vendor/
17
Symfony: web/
18
Symfony: création d’un bundle
19
Bundle: ressources
20
Création de pages
Header
Contenu
Footer
MENU
Création de pages
21
Header
Contenu
Footer
MENU
Header
Contenu
Footer
MENU
Header
Contenu
Footer
MENU
Page 1 Page 2 Page 3
22
Création de pages
PHP:
Header
Contenu
Footer
MENU
include
include
include
23
Création de pages
header.php
24
Création de page
menu.php
25
Création de pages
footer.php
26
Création de pages
index.php
27
Création de pages
Twig
Header
Contenu
Footer
MENU
Contenuextends
base.html.twig index.html.twig
28
Création de pages
base.html.twig
29
Création de pages
base.html.twig (cont)
30
Création de pages
base.html.twig (cont)
31
Création de pages
Index.html.twig
32
Questions ?