Tuesday, January 8, 1980

IAV Part 1



Presentation Transcript

1. Slide 1: Environnement de travail 11/2006 – 10/2007 Fayçal TIRICH
2. Slide 2: Serveur de déploiement 2
3. Slide 3: Serveur de déploiement OS: Debian Server * Serveur Web: Apache 2 * Principaux modules: mod_alias, mod_ssl, mod_php5, mod_rewrite... * Base de données: MySQL 5 * Moteur de table: InnoDB, MyISAM * Utilitaires: Shell, Shorewall, OpenSSH, SSMTP, phpMyAdmin... * 3
4. Slide 4: Poste de développement 4
5. Slide 5: Poste de développement OS: Debian + bureau Gnome * Editeur: Eclipse * Principal plugin: * PHP Development * Tools 5
6. Slide 6: Poste de développement Plugin * complémentaire Aptana * Development Tools 6
7. Slide 7: Poste de développement Principaux avantages du * plugin Aptana: Editeur HTML,CSS, * JavaScript... Synchronisation * FTP/SFTP 7
8. Slide 8: Poste de développement Administration de la * base de données : MySQL Admin * 8
9. Slide 9: PHP 9
10. Slide 10: PHP Programmation Orientée Objet * 10
11. Slide 11: PHP Gestion d'erreurs par Exception * 11
12. Slide 12: Outils de débugage 12
13. Slide 13: Outils de débugage PHP Debug: Classe pratique pour analyser les variables échangées * Alternatif : Xdebug * 13
14. Slide 14: Outils de débugage Pour Javascript/CSS/HTML : Console d'erreurs du navigateur Firefox * 14
15. Slide 15: Outils de débugage L'extension Firebug de * Firefox 15
16. Slide 16: Outils de débugage Exemple de debugage Pas-à- * pas d'un code Javascript via l'extension Firebug 16
17. Slide 17: PHP – Accès aux bases de données 17
18. Slide 18: PHP – Accès aux bases de données Librairie: PHP ADOdb * Avantages : * Abstraction des bases de données : Changer la base sans changer le code * Codage en POO et support du PHP5 * Support des Exceptions * Rapidité * Gratuité * ... * 18
19. Slide 19: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * Méthodes pratiques de manipulation d'ordres SQL * 19
20. Slide 20: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * Méthodes pratiques de génération d'ordres SQL * 20
21. Slide 21: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * Mise en cache des requêtes SQL: Soulager le serveur de la base de données en * « cachant » les requêtes dans des fichiers avec une date d'expiration personnalisée selon le cas 21
22. Slide 22: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * ADOdb Active Record : * Librairie Object-Relational Mapping * implémentant les bases de données relationnelles Comporte un grand nombre de fonctions * pratiques : save(), replace(), delete(), load(), find()... Supporte les transactions et le caching * Supporte la connexion multiples aux bases de * données Modèle objet flexible offrant la possibilité de * surcharger les méthodes de base .... * 22
23. Slide 23: PHP – Couche présentation 23
24. Slide 24: PHP – Couche présentation Moteur de template Smarty : * Séparation entre la logique applicative et la présentation: * Par exemple pour générer la * page à gauche, on mélange jamais le code PHP avec le code HTML. Cela permet de : Gagner du temps vu que le * codeur PHP et le designer HTML peuvent travailler en parallèle. faciliter la maintenance * mieux s'organiser dans les * grands projets 24
25. Slide 25: PHP – Couche présentation Ainsi la page précédente est organisée comment suivant: * Un premier fichier template ne contenant que du HTML et du code Smarty mais jamais du code PHP * ou de requêtes SQL... 25
26. Slide 26: PHP – Couche présentation Un deuxième fichier PHP contenant la * classe implémentant les différentes méthodes définissant la logique applicative 26
27. Slide 27: PHP – Couche présentation Un troisième fichier PHP faisant la * relation entre le premier fichier template et le deuxième fichier PHP contenant la bonne classe avec les bonnes méthodes à appeler 27
28. Slide 28: PHP – Couche présentation Autre point fort de Smarty : * Gestion du cache : Permet de mettre en cache des pages entières ou seulement des parties ayant * des données qui ne changent pas fréquemment afin d'éviter une re-compilation inutile pouvant ralentir le serveur web. 28
29. Slide 29: Applications Web... lourdes 29
30. Slide 30: Applications Web... lourdes Toute en gardant la même logique applicative concernant la couche métier et la couche d'accès aux * données, la tendance pour la couche présentation va de plus en plus vers de nouvelles plateformes basées sur la technique Ajax (Asynchronous JavaScript and XML) qui offrent des composants aussi performant que les composants des bibliothèques telles que Qt , wxWidget, Swing ou celles de la plateforme .Net 30
31. Slide 31: Applications Web... lourdes Plateforme Ajax adoptée : ExtJS * Avantages : * Compatibilité avec la majorité des navigateurs * Peut être adaptée avec plusieurs librairies surtout Yahoo! User Interface, l'une des plus mûres * librairies Ajax La partie présentation est totalement indépendante du langage utilisé dans la partie backend: On * peut donc migrer de PHP à Pyton, JSP ou RubyOnRails par exemple sans changer le code Javascript des interfaces Une sélection de composants complète : DataGrid, TreeView, TabPanel, ToolBar, Calendar, Menu, * Layout, ModalBox, WYSIWYG.... Gratuite * Support de la communauté * ... * 31
32. Slide 32: Applications Web... lourdes ExtJS en action * 32
33. Slide 33: Exemples d'application 33
34. Slide 34: Installation et configuration du serveur 34
35. Slide 35: réparation du serveur de déploiement Partie installation et configuration : * Mise en place de la version Server du dernier Debian (Version 4.0 Etch au moment du déploiement) * Y installer et configurer OpenSSH Server (changer le port et interdire au root de se connecter à * distant) Installer MySQL et sécuriser le compte root * Installer PHP5 ainsi que ses principaux modules : php5-mysql, php5-gd... * Installer Apache2 et et ses principaux modules et surtout activer le mode rewrite et le https en * utilisant une clé auto-générée (pour le moment) Installer et configurer PhpMyAdmin * Installer le firewall Shorewall et fermer tous les ports à l'exception des ports, 80, 443 et le port de * l'OpenSSH server Installer le package SSMTP pour pouvoir envoyer des mails depuis des commandes Shell à l'extérieur * Réaliser des petits scripts Shell faisant une sauvegarde compressée journalière de la base données * MySQL et une autre hebdomadaire des codes sources des sites. Ces points de sauvegarde sont envoyés après à un compte GMAIL créé spécialement pour cette tâche de sauvegarde. 35
36. Slide 36: Partie développement 36
37. Slide 37: www.iavcha.ac.ma 37
38. Slide 38: www.iavcha.ac.ma Partie développement : * Le cas PHP/Smarty: * www.iavcha.ac.ma 38
39. Slide 39: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Moteur de recherche * interne 39
40. Slide 40: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Compte sécurisé pour * chaque membre du personnel: Les variables échangées sont protégées contre les attaques du type Injection SQL et les attaques XSS (Cross- site scripting) 40
41. Slide 41: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Modification * dynamique et instantanée des profils par les membres concernés 41
42. Slide 42: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Module de publication * de CV Online 42
43. Slide 43: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Exemple de formulaire * d'ajout/modificationd'un e section de CV 43
44. Slide 44: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Résultat obtenu d'une * page personnelle d'un membre 44
45. Slide 45: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Partie administration: * Gestion des * utilisateurs 45
46. Slide 46: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Partie administration: * Gestion du contenu * 46
47. Slide 47: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Partie administration: * Gestion des galeries * de la média-thèque 47
48. Slide 48: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Exemple du résultat * d'une galerie Ajax 48
49. Slide 49: Gestion du Stock 49
50. Slide 50: Gestion du Stock Exemple 2 : Le cas PHP/ExtJs via une application de gestion de stock * 50
51. Slide 51: Gestion du Stock Cette application est * installée dans un serveur sécurisé (https) pour assurer une confidentialité extrême des données échangées contre les logiciels espions de capture des paquets 51
52. Slide 52: Gestion du Stock Exemples de composants * utilisés dans cette application: ModalBox * TreeView * personnalisable Layout dimensionable * DatePicker * ComboBox avec auto * suggestion Data Grid (Triable, * dimensionable, colonnes cachées, pagination...) .... * 52
53. Slide 53: Gestion du Stock Exemple de * personnalisation du rendu des composants: coloration des cellules d'une DataGrid selon une règle spécifique de gestion 53
54. Slide 54: Gestion du Stock Génération de rapport PDF avec la librairie FPDF * 54
55. Slide 55: Gestion du Stock Exemple de graphe synthétique de type « Ligne » créé avec la librairie PlotKit * 55
56. Slide 56: Gestion du Stock Un autre exemple de graphe camembert en utilisant la même librairie PlotKit * 56
57. Slide 57: Conclusion 57
58. Slide 58: Conclusion Ces exemples d'applications Web permettent entre autres de: * Centraliser les applications dans des serveurs et donc éviter toute installation ou mise à jour * dans les postes clients Faciliter la maintenance et la sauvegarde des données * Pratique pour les personnes mobiles qui peuvent consulter, opérer et générer des rapports * depuis n'importe quel ordinateur connecté à internet Renaître des vieux ordinateurs clients vu que la majorités des traitements se font du coté * serveur Annuler le coût software en utilisant des librairies gratuites * Minimiser le coût hardware en optant pour Debian/Apache/PHP/MySQL aptes à assurer une * performance extrême même dans des serveurs plutôt modestes Dans le coté fonctionnel; offrir des solution informatiques limitant les erreurs et augmentant * l'efficacité dans le travaille quotidien tout en donnant des outils fiables d'aides à la décision aux responsables ... * 58
59. Slide 59: Exemples d'applications en cours de réalisation Application de gestion de budgets * Application de gestion d'ordre de missions * Site Web référentielle de la collection du jardin botanique du Complexe Horticole d'Agadir * Application de gestion des notes * Application de gestion de bibliothèque avec interface Web pour consultation en ligne depuis * internet ... * 59
60. Slide 60: Merci pour votre attention 60

No comments:

Post a Comment