====== MVC, Espace privé ====== ===== Structure des fichiers ===== A partir de ce TD, nous allons commencer à coder des applications significatives, c'est à dire qu'il y aura de nombreuses lignes de code et de nombreux fichiers. Nous allons adopter une structure simple pour dissocier l'affichage, le traitement et les données. Cette séparation du code en trois morceaux s'appèle l'architectre [[http://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur|Modèle-Vue-Contrôleur]]. Pour des raisons de simplicité, nous appliquerons une architecture minimaliste conçu pour répondre à ce besoin de séparer les 3 éléments MVC. Libre à vous d'utiliser d'autres architectures tant qu'elles respectent cette logique MVC. Nous aborderons par la suite d'autres frameworks comme, [[http://www.tinymvc.com/|TinyMVC]], [[http://www.symfony.com/|Symfony]], [[http://codeigniter.com/|Codeigniter]] ou encore [[http://cakephp.org/|CakePHP]]. Dans notre cas, nous n'allons pas tout coder en objet (à moins que vous y teniez), pour cette raison nous allons avoir différents dossiers * **config** qui contient les fichiers de configuration * **functions** qui contient les différentes fonctions * **lib** qui contient les librairies d'objets que nous allons utiliser * **sql** qui contient les scripts sql de création de base de données * **data** qui contient les éventuelles données (si on utilise SQLite) * **templates** qui contient les pages HTML dans-lesquelles on inclut un peu de PHP * **images** qui contient les images * **js** qui contient les javascripts ====== mvc_mail ====== Le fichier mvc_mail.zip contient un dossier éponyme. {{:ressources:php:mvc_mail.zip|}} Celui-ci donne l'architecture globale d'un système d'envoi de mail En vous basant sur cette architecture, faites un script de demande de devis. Le script enregistre les données saisies dans la base de données et envoie un mail à un responsable de l'entreprise. ====== mvc_gallery (optionnel) ====== En vous basant sur cette architecture, faites une Galerie d'images. ====== mvc_online_form (optionnel) ====== Dupliquez le dossier mvc_mail en mvc_online_form et ajoutez un captcha Je vous invite notamment à utiliser [[http://recaptcha.net/|recaptcha]] et à [[http://code.google.com/apis/recaptcha/docs/php.html|lire la documentation PHP]] pour utiliser ce code.