PHP/ExtJs experience feedback - IAV case - 1

fayway
Environnement
de travail
11/2006

          Fayçal TIRICH
Serveur de déploiement
Serveur de déploiement

 • OS: Debian Server
 • Serveur Web: Apache 2
       o Principaux modules: mod_alias, mod_ssl, mod_php5, mod_rewrite...
 •   Base de données: MySQL 5
       o Moteur de table: InnoDB, MyISAM
 •   Utilitaires: Shell, Shorewall, OpenSSH, SSMTP, phpMyAdmin...
Poste de développement
Poste de développement
 • OS: Debian + bureau Gnome


                               • Editeur: Eclipse
                               • Principal plugin:
                                   o PHP
                                     Development
                                     Tools
Poste de développement


                         o Plugin
                           complémentaire
                              Aptana
                               Development Tools
Poste de développement



                         • Principaux avantages du
                          plugin Aptana:
                            o Editeur HTML,CSS,
                              JavaScript...
                            o Synchronisation
                              FTP/SFTP
Poste de développement




                         • Administration de la
                          base de données :
                            o MySQL Admin
PHP
PHP
• Programmation Orientée Objet
PHP
• Gestion d'erreurs par Exception
Outils de débugage
Outils de débugage
 • PHP Debug: Classe pratique pour analyser les variables échangées
     o Alternatif : Xdebug
Outils de débugage
 • Pour Javascript/CSS/HTML : Console d'erreurs du navigateur Firefox
Outils de débugage



                     • L'extension Firebug de
                      Firefox
Outils de débugage


                     • Exemple de debugage Pas-
                      à-pas d'un code Javascript
                      via l'extension Firebug
PHP – Accès aux bases de données
PHP – Accès aux bases de données
 • Librairie: PHP ADOdb
     o 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é
              ...
PHP – Accès aux bases de données
 • Autres avantages de PHP ADOdb
    o Méthodes pratiques de manipulation d'ordres SQL
PHP – Accès aux bases de données
 • Autres avantages de PHP ADOdb
    o Méthodes pratiques de génération d'ordres SQL
PHP – Accès aux bases de données
• Autres avantages de PHP ADOdb
   o 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
PHP – Accès aux bases de données
• Autres avantages de PHP ADOdb
   o 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
        ....
PHP – Couche présentation
PHP – Couche présentation
• Moteur de template Smarty :
   o 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 :
                                                                       o Gagner du temps vu
                                                                         que le codeur PHP et
                                                                         le designer HTML
                                                                         peuvent travailler en
                                                                         parallèle.
                                                                       o faciliter la
                                                                         maintenance
                                                                       o mieux s'organiser dans
                                                                         les grands projets
PHP – Couche présentation
• Ainsi la page précédente est organisée comment suivant:
    o Un premier fichier template ne contenant que du HTML et du code Smarty mais jamais du code
      PHP ou de requêtes SQL...
PHP – Couche présentation



                      • Un deuxième fichier PHP contenant la
                       classe implémentant les différentes
                       méthodes définissant la logique
                       applicative
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
PHP – Couche présentation
 • Autre point fort de Smarty :
     o 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.
Applications Web... lourdes
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
Applications Web... lourdes
 • Plateforme Ajax adoptée : ExtJS
 • Avantages :
     o Compatibilité avec la majorité des navigateurs
     o Peut être adaptée avec plusieurs librairies surtout Yahoo! User Interface, l'une des plus mûres
       librairies Ajax
     o 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
     o Une sélection de composants complète : DataGrid, TreeView, TabPanel, ToolBar, Calendar,
       Menu, Layout, ModalBox, WYSIWYG....
     o Gratuite
     o Support de la communauté
     o ...
Applications Web... lourdes
• ExtJS en action
Exemples d'application
Installation et configuration du serveur
Préparation du serveur de
déploiement
 •
 Partie installation et configuration :
   o Mise en place de la version Server du dernier Debian (Version 4.0 Etch au moment du
     déploiement)
   o Y installer et configurer OpenSSH Server (changer le port et interdire au root de se connecter à
     distant)
   o Installer MySQL et sécuriser le compte root
   o Installer PHP5 ainsi que ses principaux modules : php5-mysql, php5-gd...
   o 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)
   o Installer et configurer PhpMyAdmin
   o Installer le firewall Shorewall et fermer tous les ports à l'exception des ports, 80, 443 et le port
     de l'OpenSSH server
   o Installer le package SSMTP pour pouvoir envoyer des mails depuis des commandes Shell à
     l'extérieur
   o 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.
Partie développement
www.iavcha.ac.ma
www.iavcha.ac.ma
                   • Partie développement
                      o Le cas PHP/Smarty
                        www.iavcha.ac.ma
www.iavcha.ac.ma
• Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma




                                                              • Moteur de recherch
                                                               interne
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)
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
www.iavcha.ac.ma
• Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma




                                                              • Module de
                                                               publication de CV
                                                               Online
www.iavcha.ac.ma
• Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma




                                                              • Exemple de formulaire
                                                               d'ajout/modificationd'
                                                               ne section de CV
www.iavcha.ac.ma
• Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma




                                                              • Résultat obtenu d'u
                                                               page personnelle d'
                                                               membre
www.iavcha.ac.ma
• Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma




                                                              • Partie administration
                                                                  o Gestion des
                                                                    utilisateurs
www.iavcha.ac.ma
• Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma




                                                              • Partie administration
                                                                  o Gestion du
                                                                    contenu
www.iavcha.ac.ma
• Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma




                                                              • Partie administration
                                                                  o Gestion des
                                                                    galeries de la
                                                                    média-thèque
www.iavcha.ac.ma
• Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma




                                                              • Exemple du
                                                               résultat d'une
                                                               galerie Ajax
Gestion du Stock
Gestion du Stock
• Exemple 2 : Le cas PHP/ExtJs via une application de gestion de stock
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
Gestion du Stock

                   • Exemples de
                    composants utilisés
                    dans cette application:
                      o ModalBox
                      o TreeView
                        personnalisable
                      o Layout
                        dimensionable
                      o DatePicker
                      o ComboBox avec
                        auto suggestion
                      o Data Grid (Triable,
                        dimensionable,
                        colonnes cachées,
                        pagination...)
                      o ....
Gestion du Stock



                   • Exemple de
                    personnalisation d
                    rendu des
                    composants:
                    coloration des
                    cellules d'une
                    DataGrid selon une
                    règle spécifique de
                    gestion
Gestion du Stock
• Génération de rapport PDF avec la librairie FPDF
Gestion du Stock
• Exemple de graphe synthétique de type « Ligne » créé avec la librairie PlotKit
Gestion du Stock
• Un autre exemple de graphe camembert en utilisant la même librairie PlotKit
Conclusion
Conclusion
 • Ces exemples d'applications Web permettent entre autres de:
    o Centraliser les applications dans des serveurs et donc éviter toute installation ou mise à jour
      dans les postes clients
    o Faciliter la maintenance et la sauvegarde des données
    o Pratique pour les personnes mobiles qui peuvent consulter, opérer et générer des rapports
      depuis n'importe quel ordinateur connecté à internet
    o Renaître des vieux ordinateurs clients vu que la majorités des traitements se font du coté
      serveur
    o Annuler le coût software en utilisant des librairies gratuites
    o 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
    o 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
    o ...
Exemples d'applications en cours de réalisation



 • Application de gestion de budgets
 • Application de gestion d'ordre de missions
 • Site Web référentiel 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
 •   ...
Merci pour votre attention
1 de 60

Recomendados

Chap01 introduction por
Chap01 introductionChap01 introduction
Chap01 introductionPape Ndiaye
272 vistas28 diapositivas
Php por
PhpPhp
Phpkrymo
4.3K vistas117 diapositivas
AFUP & PHP @ Supelec por
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelecjulien pauli
1.1K vistas44 diapositivas
Apache for développeurs PHP por
Apache for développeurs PHPApache for développeurs PHP
Apache for développeurs PHPjulien pauli
2.6K vistas42 diapositivas
Resume SGBDR por
Resume SGBDRResume SGBDR
Resume SGBDRKhaldi Abdelhamid HAbib
1.4K vistas36 diapositivas
Php & My Sql por
Php & My SqlPhp & My Sql
Php & My Sqlguest6c050e
2.6K vistas36 diapositivas

Más contenido relacionado

La actualidad más candente

Pdo por
PdoPdo
PdoYassine La
800 vistas9 diapositivas
Optimiser les performances dans Wordpress por
Optimiser les performances dans WordpressOptimiser les performances dans Wordpress
Optimiser les performances dans WordpressNicolas Juen
7.1K vistas64 diapositivas
Alphorm.com Formation Edition Scientifique avec Latex (2e) por
Alphorm.com Formation Edition Scientifique avec Latex (2e) Alphorm.com Formation Edition Scientifique avec Latex (2e)
Alphorm.com Formation Edition Scientifique avec Latex (2e) Alphorm
24.8K vistas228 diapositivas
HTML5, le web de demain - BNSA por
HTML5, le web de demain - BNSAHTML5, le web de demain - BNSA
HTML5, le web de demain - BNSABNSA - Aquitaine
2.7K vistas53 diapositivas
S51 vos projets web services ibm i a l aide de php por
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
117 vistas36 diapositivas
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco... por
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Xavier Lacot
3.9K vistas51 diapositivas

La actualidad más candente(13)

Optimiser les performances dans Wordpress por Nicolas Juen
Optimiser les performances dans WordpressOptimiser les performances dans Wordpress
Optimiser les performances dans Wordpress
Nicolas Juen7.1K vistas
Alphorm.com Formation Edition Scientifique avec Latex (2e) por Alphorm
Alphorm.com Formation Edition Scientifique avec Latex (2e) Alphorm.com Formation Edition Scientifique avec Latex (2e)
Alphorm.com Formation Edition Scientifique avec Latex (2e)
Alphorm24.8K vistas
S51 vos projets web services ibm i a l aide de php por Gautier DUMAS
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
Gautier DUMAS117 vistas
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco... por Xavier Lacot
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Xavier Lacot3.9K vistas
Réalisation d’applications Desktop Windows/Mac Os avec PHP por Alexandre Morgaut
Réalisation d’applications Desktop Windows/Mac Os avec PHPRéalisation d’applications Desktop Windows/Mac Os avec PHP
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Alexandre Morgaut3.8K vistas
Formation html5 css3 java script por Arrow Group
Formation html5 css3 java scriptFormation html5 css3 java script
Formation html5 css3 java script
Arrow Group3.8K vistas
PHP (Partie II) Par Mahdi Ben Alaya por Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben AlayaPHP (Partie II) Par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben Alaya
Mahdi Ben Alaya3.6K vistas
Introduction aux Technologies Web élaborée par Marouan OMEZZINE por Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Marouan OMEZZINE3K vistas

Similar a PHP/ExtJs experience feedback - IAV case - 1

43_pps.pdf por
43_pps.pdf43_pps.pdf
43_pps.pdfssuser192642
28 vistas48 diapositivas
hassclic270.ppt por
hassclic270.ppthassclic270.ppt
hassclic270.pptadiouf2
9 vistas106 diapositivas
cours-gratuit.com--coursMySql-id2218.pdf por
cours-gratuit.com--coursMySql-id2218.pdfcours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfGroupeExcelMarrakech
43 vistas51 diapositivas
Cms oss-27012006 por
Cms oss-27012006Cms oss-27012006
Cms oss-27012006Pascal Flamand
573 vistas15 diapositivas
OSDC 2011 - Des ETL pour drupal por
OSDC 2011 - Des ETL pour drupalOSDC 2011 - Des ETL pour drupal
OSDC 2011 - Des ETL pour drupalRodolfo Ripado
1.9K vistas20 diapositivas
PHP et Performances - AFUP 2005 por
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005Eric D.
1.9K vistas33 diapositivas

Similar a PHP/ExtJs experience feedback - IAV case - 1(20)

hassclic270.ppt por adiouf2
hassclic270.ppthassclic270.ppt
hassclic270.ppt
adiouf29 vistas
OSDC 2011 - Des ETL pour drupal por Rodolfo Ripado
OSDC 2011 - Des ETL pour drupalOSDC 2011 - Des ETL pour drupal
OSDC 2011 - Des ETL pour drupal
Rodolfo Ripado1.9K vistas
PHP et Performances - AFUP 2005 por Eric D.
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
Eric D.1.9K vistas
Utilisation optimale et professionnelle de PHP por Jean-Marc Fontaine
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
Jean-Marc Fontaine1.9K vistas
Javascript as a first programming language : votre IC prête pour la révolution ! por VISEO
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
VISEO1.5K vistas
Création des sites web pour débutant por Korteby Farouk
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutant
Korteby Farouk3.4K vistas
Conference drupal 8 au Forum PHP 2013 à Paris por Chipway
Conference drupal 8 au Forum PHP 2013 à ParisConference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à Paris
Chipway3.3K vistas
Formation d'architecte logiciel AFCEPF por Boubker ABERWAG
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
Boubker ABERWAG639 vistas
Drupagora 2011 - Importer du contenu avec Drupal por Rodolfo Ripado
Drupagora 2011 - Importer du contenu avec DrupalDrupagora 2011 - Importer du contenu avec Drupal
Drupagora 2011 - Importer du contenu avec Drupal
Rodolfo Ripado2.2K vistas
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1 por Horacio Gonzalez
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Horacio Gonzalez4.3K vistas
Apprendre php por ben zanre
Apprendre phpApprendre php
Apprendre php
ben zanre80 vistas
Lp web tp3_idse por Karim Amane
Lp web tp3_idseLp web tp3_idse
Lp web tp3_idse
Karim Amane847 vistas

PHP/ExtJs experience feedback - IAV case - 1

  • 3. Serveur de déploiement • OS: Debian Server • Serveur Web: Apache 2 o Principaux modules: mod_alias, mod_ssl, mod_php5, mod_rewrite... • Base de données: MySQL 5 o Moteur de table: InnoDB, MyISAM • Utilitaires: Shell, Shorewall, OpenSSH, SSMTP, phpMyAdmin...
  • 5. Poste de développement • OS: Debian + bureau Gnome • Editeur: Eclipse • Principal plugin: o PHP Development Tools
  • 6. Poste de développement o Plugin complémentaire  Aptana Development Tools
  • 7. Poste de développement • Principaux avantages du plugin Aptana: o Editeur HTML,CSS, JavaScript... o Synchronisation FTP/SFTP
  • 8. Poste de développement • Administration de la base de données : o MySQL Admin
  • 9. PHP
  • 11. PHP • Gestion d'erreurs par Exception
  • 13. Outils de débugage • PHP Debug: Classe pratique pour analyser les variables échangées o Alternatif : Xdebug
  • 14. Outils de débugage • Pour Javascript/CSS/HTML : Console d'erreurs du navigateur Firefox
  • 15. Outils de débugage • L'extension Firebug de Firefox
  • 16. Outils de débugage • Exemple de debugage Pas- à-pas d'un code Javascript via l'extension Firebug
  • 17. PHP – Accès aux bases de données
  • 18. PHP – Accès aux bases de données • Librairie: PHP ADOdb o 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é  ...
  • 19. PHP – Accès aux bases de données • Autres avantages de PHP ADOdb o Méthodes pratiques de manipulation d'ordres SQL
  • 20. PHP – Accès aux bases de données • Autres avantages de PHP ADOdb o Méthodes pratiques de génération d'ordres SQL
  • 21. PHP – Accès aux bases de données • Autres avantages de PHP ADOdb o 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
  • 22. PHP – Accès aux bases de données • Autres avantages de PHP ADOdb o 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  ....
  • 23. PHP – Couche présentation
  • 24. PHP – Couche présentation • Moteur de template Smarty : o 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 : o Gagner du temps vu que le codeur PHP et le designer HTML peuvent travailler en parallèle. o faciliter la maintenance o mieux s'organiser dans les grands projets
  • 25. PHP – Couche présentation • Ainsi la page précédente est organisée comment suivant: o Un premier fichier template ne contenant que du HTML et du code Smarty mais jamais du code PHP ou de requêtes SQL...
  • 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
  • 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
  • 28. PHP – Couche présentation • Autre point fort de Smarty : o 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.
  • 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
  • 31. Applications Web... lourdes • Plateforme Ajax adoptée : ExtJS • Avantages : o Compatibilité avec la majorité des navigateurs o Peut être adaptée avec plusieurs librairies surtout Yahoo! User Interface, l'une des plus mûres librairies Ajax o 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 o Une sélection de composants complète : DataGrid, TreeView, TabPanel, ToolBar, Calendar, Menu, Layout, ModalBox, WYSIWYG.... o Gratuite o Support de la communauté o ...
  • 35. Préparation du serveur de déploiement • Partie installation et configuration : o Mise en place de la version Server du dernier Debian (Version 4.0 Etch au moment du déploiement) o Y installer et configurer OpenSSH Server (changer le port et interdire au root de se connecter à distant) o Installer MySQL et sécuriser le compte root o Installer PHP5 ainsi que ses principaux modules : php5-mysql, php5-gd... o 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) o Installer et configurer PhpMyAdmin o Installer le firewall Shorewall et fermer tous les ports à l'exception des ports, 80, 443 et le port de l'OpenSSH server o Installer le package SSMTP pour pouvoir envoyer des mails depuis des commandes Shell à l'extérieur o 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.
  • 38. www.iavcha.ac.ma • Partie développement o Le cas PHP/Smarty www.iavcha.ac.ma
  • 39. www.iavcha.ac.ma • Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma • Moteur de recherch interne
  • 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)
  • 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
  • 42. www.iavcha.ac.ma • Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma • Module de publication de CV Online
  • 43. www.iavcha.ac.ma • Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma • Exemple de formulaire d'ajout/modificationd' ne section de CV
  • 44. www.iavcha.ac.ma • Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma • Résultat obtenu d'u page personnelle d' membre
  • 45. www.iavcha.ac.ma • Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma • Partie administration o Gestion des utilisateurs
  • 46. www.iavcha.ac.ma • Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma • Partie administration o Gestion du contenu
  • 47. www.iavcha.ac.ma • Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma • Partie administration o Gestion des galeries de la média-thèque
  • 48. www.iavcha.ac.ma • Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma • Exemple du résultat d'une galerie Ajax
  • 50. Gestion du Stock • Exemple 2 : Le cas PHP/ExtJs via une application de gestion de stock
  • 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
  • 52. Gestion du Stock • Exemples de composants utilisés dans cette application: o ModalBox o TreeView personnalisable o Layout dimensionable o DatePicker o ComboBox avec auto suggestion o Data Grid (Triable, dimensionable, colonnes cachées, pagination...) o ....
  • 53. Gestion du Stock • Exemple de personnalisation d rendu des composants: coloration des cellules d'une DataGrid selon une règle spécifique de gestion
  • 54. Gestion du Stock • Génération de rapport PDF avec la librairie FPDF
  • 55. Gestion du Stock • Exemple de graphe synthétique de type « Ligne » créé avec la librairie PlotKit
  • 56. Gestion du Stock • Un autre exemple de graphe camembert en utilisant la même librairie PlotKit
  • 58. Conclusion • Ces exemples d'applications Web permettent entre autres de: o Centraliser les applications dans des serveurs et donc éviter toute installation ou mise à jour dans les postes clients o Faciliter la maintenance et la sauvegarde des données o Pratique pour les personnes mobiles qui peuvent consulter, opérer et générer des rapports depuis n'importe quel ordinateur connecté à internet o Renaître des vieux ordinateurs clients vu que la majorités des traitements se font du coté serveur o Annuler le coût software en utilisant des librairies gratuites o 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 o 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 o ...
  • 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érentiel 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 • ...
  • 60. Merci pour votre attention