Escolar Documentos
Profissional Documentos
Cultura Documentos
Utilisation de php 5, Mysql, Html, css, ... Inspir de UML2 par la pratique M. Blay-Fornarino Les codes sont disponibles sur le site web
vendredi 14 octobre 2011
Bibliographie
Why MVC is not an application architecture Stefan Priebsch, the PHP.cc ZendCon 2010 Developing Web Applications with PHP, RAD for the World Wide Web,
Diagramme de Use-cases
Choix dArchitecture
Prsentation
Logique applicative
Stockage
Choix dArchitecture
Prsentation
Logique applicative
Stockage
Choix dArchitecture
Prsentation
Logique applicative
Stockage
Choix dArchitecture
Prsentation
Logique applicative
Stockage
Choix dArchitecture
clickOn()
Prsentation
IHM
crer Information
index_SI_View.php
index_SI_View.php
class
SI_Controller { public function index($args) { $view = new Index_SI_View(); $view->display(); } SI_Controller.php public function display($args) { header('Content-type: text/xml'); $res='<?xml version="1.0"?><data>'; $infos = Information::findAll(); foreach($infos as $tmpInformation) { $res = $res.$tmpInformation->toXML() ; } $res=$res.'</data>'; echo $res; }
index_SI_View.php
class
SI_Controller { public function index($args) { $view = new Index_SI_View(); $view->display(); } SI_Controller.php public function display($args) { header('Content-type: text/xml'); $res='<?xml version="1.0"?><data>'; $infos = Information::findAll(); foreach($infos as $tmpInformation) { $res = $res.$tmpInformation->toXML() ; } $res=$res.'</data>';
class
SI_Controller { public function index($args) { $view = new Index_SI_View(); $view->display(); } SI_Controller.php public function display($args) { header('Content-type: text/xml'); $res='<?xml version="1.0"?><data>'; $infos = Information::findAll(); foreach($infos as $tmpInformation) { $res = $res.$tmpInformation->toXML() ; } $res=$res.'</data>'; echo $res; }
index_SI_View.php
class
SI_Controller { public function index($args) { $view = new Index_SI_View(); $view->display(); } SI_Controller.php public function display($args) { header('Content-type: text/xml'); $res='<?xml version="1.0"?><data>'; $infos = Information::findAll(); foreach($infos as $tmpInformation) { $res = $res.$tmpInformation->toXML() ; } $res=$res.'</data>'; echo $res; }
index_SI_View.php
$infos = Information::findAll();
echo $res; }
class
SI_Controller { public function index($args) { $view = new Index_SI_View(); $view->display(); } SI_Controller.php public function display($args) { header('Content-type: text/xml'); $res='<?xml version="1.0"?><data>'; $infos = Information::findAll(); foreach($infos as $tmpInformation) { $res = $res.$tmpInformation->toXML() ; } $res=$res.'</data>';
index_SI_View.php
class
SI_Controller { public function index($args) { $view = new Index_SI_View(); $view->display(); } SI_Controller.php public function display($args) { header('Content-type: text/xml'); $res='<?xml version="1.0"?><data>'; $infos = Information::findAll(); foreach($infos as $tmpInformation) { $res = $res.$tmpInformation->toXML() ; } $res=$res.'</data>'; echo $res; }
index_SI_View.php
class
SI_Controller { public function index($args) { $view = new Index_SI_View(); $view->display(); } SI_Controller.php public function display($args) { header('Content-type: text/xml'); $res='<?xml version="1.0"?><data>'; $infos = Information::findAll(); foreach($infos as $tmpInformation) { $res = $res.$tmpInformation->toXML() ; } $res=$res.'</data>'; echo $res; }
index_SI_View.php
Information.php
class
SI_Controller { public function index($args) { $view = new Index_SI_View(); $view->display(); } SI_Controller.php public function display($args) { header('Content-type: text/xml'); $res='<?xml version="1.0"?><data>'; $infos = Information::findAll(); foreach($infos as $tmpInformation) { $res = $res.$tmpInformation->toXML() ; } $res=$res.'</data>'; echo $res; }
class
Index_Admin_View extends Main_Global_View { admin_View private $infosListe; public function Index_Admin_View($args) { $this->infosListe = $args['infosListe']; }... <h1>Gestion des Informations</h1> <h2> Liste des informations </h2> <form id="infoModifForm" name="infoModifForm" method="post" action="./"> <p>
class
Index_Admin_View extends Main_Global_View { admin_View private $infosListe; public function Index_Admin_View($args) { $this->infosListe = $args['infosListe']; }... <h1>Gestion des Informations</h1> <h2> Liste des informations </h2> <form id="infoModifForm" name="infoModifForm" method="post" action="./"> <p>
Modle-Vue-Controleur (MVC)
Controller
View
Model
Modle-Vue-Controleur (MVC)
Controller
Model
Modle-Vue-Controleur (MVC)
Controller
Model
Modle-Vue-Controleur (MVC)
Controller contrleur: chef dorchestre
Model
View
Model
View
Model
View
Model
View
Model
View
Model
Domaine
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Association...
04/11
25 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Association...
04/11
26 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
27 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
public Commande (Produit[] c) throws Exception { if (c.length != 0) lignes = c; else throw new Exception("Un produit au moins est requis"); }
04/11
28 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
public Commande (Produit[] c) throws Exception { if (c.length != 0) lignes = c; else throw new Exception("Un produit au moins est requis"); }
04/11
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
30 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
31 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Exemple de Rafnement
04/11
32 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Principes dimplmentation
04/11
33 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Principes dimplmentation
Extrmit dassociation 1
04/11
33 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Principes dimplmentation
Extrmit dassociation 1 Rle en Attribut avec type de lextrmit
04/11
33 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Principes dimplmentation
Extrmit dassociation 1 Rle en Attribut avec type de lextrmit Type getRole()
04/11
33 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Principes dimplmentation
Extrmit dassociation 1 Rle en Attribut avec type de lextrmit Type getRole() Extrmit dassociation *
04/11
33 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Principes dimplmentation
Extrmit dassociation 1 Rle en Attribut avec type de lextrmit Type getRole() Extrmit dassociation * Rle (pluriel) en collection
04/11
33 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Principes dimplmentation
Extrmit dassociation 1 Rle en Attribut avec type de lextrmit Type getRole() Extrmit dassociation * Rle (pluriel) en collection Type de lextrmit en lment de collection
04/11
33 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Principes dimplmentation
Extrmit dassociation 1 Rle en Attribut avec type de lextrmit Type getRole() Extrmit dassociation * Rle (pluriel) en collection Type de lextrmit en lment de collection Collection getRoles()
04/11
33 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Principes dimplmentation
Extrmit dassociation 1 Rle en Attribut avec type de lextrmit Type getRole() Extrmit dassociation * Rle (pluriel) en collection Type de lextrmit en lment de collection Collection getRoles() // Collection<TypeExtrmit>//
04/11
33 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
34 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
34 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
34 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
34 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
34 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
34 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
34 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
34 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Implmentation
Prise de responsabilits
04/11
35 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Implmentation
Prise de responsabilits
04/11
35 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Implmentation
Prise de responsabilits
04/11
35 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Implmentation
Class Student { Collection getClasses() { return classes;//Collection<Course> } protected List classes=new ArrayList } Class Course { Collection getHasSections(); protected List addSection = new protected addHasSections(Section s){ hasSections.add(s); }
04/11
36 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Implmentation
Class Student { Collection getClasses() { return classes;//Collection<Course> } protected List classes=new ArrayList } Class Course { Collection getHasSections(); protected List addSection = new protected addHasSections(Section s){ hasSections.add(s); }
04/11
36 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Implmentation
class Student { Result getResult(Section s) } class Section { Result getResult(Student s) } class Result { Student getStudent() Section getSection() }
04/11
37 /115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
38 Introduction au langage de modlisation UML, Denis Conan, Chantal Taconet, Christian Bac, Telecom Sud Paris
/115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
38 Introduction au langage de modlisation UML, Denis Conan, Chantal Taconet, Christian Bac, Telecom Sud Paris
/115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
38 Introduction au langage de modlisation UML, Denis Conan, Chantal Taconet, Christian Bac, Telecom Sud Paris
/115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
38 Introduction au langage de modlisation UML, Denis Conan, Chantal Taconet, Christian Bac, Telecom Sud Paris
/115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
04/11
38 Introduction au langage de modlisation UML, Denis Conan, Chantal Taconet, Christian Bac, Telecom Sud Paris
/115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
0..N =
04/11
38 Introduction au langage de modlisation UML, Denis Conan, Chantal Taconet, Christian Bac, Telecom Sud Paris
/115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
0..N =
04/11
38 Introduction au langage de modlisation UML, Denis Conan, Chantal Taconet, Christian Bac, Telecom Sud Paris
/115
Pattern ex.
Packages
Itrations
Squences
Archi.
De seq .
Classes..
Compositions
Introduction au langage de modlisation UML, Denis Conan, Chantal Taconet, Christian Bac, Telecom Sud Paris
04/11
39 /115