utilisation optimale et professionnelle de php

28
Utilisation optimale et professionnelle de PHP PHP Utilisation optimale et professionnelle

Upload: jean-marc-fontaine

Post on 26-Dec-2014

2.581 views

Category:

Technology


2 download

DESCRIPTION

Cette conférence a été donnée en collaboration avec Guillaume Ponçon, auteur du livre "PHP5 Best Practices". Elle évoque les outils et méthodes permettant de développer avec PHP de manière professionnelle.

TRANSCRIPT

Page 1: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

PHPUtilisation optimale et professionnelle

Page 2: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Vos conférenciers

● Jean-Marc FontaineFondateur de Kanopé[email protected]

● Guillaume PonçonArchitecte / Formateur PHP chez AnaskaAuteur de l'ouvrage français Best Practices PHP 5(présenté à la fin de ce document)

[email protected]

Page 3: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

De quoi allons-nous parler ?

● Optimiser son espace de travail● Optimiser ses développements● Optimiser un projet PHP en équipe● Optimiser le déploiement des applications● Optimiser les performances à l'exécution

Page 4: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Installation de PHP

● Installation d'un paquetage (ex : WAMP)

– Avantages : installation très rapide et facile de PHP, Apache, MySQL et d'outils (phpMyAdmin, etc.)

– Inconvénients : stabilité et performances figés● Compilation manuelle sur mesure

– Avantages : performances, stabilité, aucune limitation

– Inconvénients : installation longue, demande des connaissances.

Page 5: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Adaptation de l'installation à l'environnement

● En développement et en pré-production

– Niveau d'erreur maxi, affiché à l'écran– Débogueur, profileur– Tests de recette

● En production

– Niveau d'erreur réduit, logué, non affiché– Optimiseur (cache d'opcodes)– Monitoring et remontée d'information

Page 6: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Installation de PHP : erreurs du monde professionnel

● Laisser la "conf par défaut"● Ignorer l'importance débogage / le profiling● Utiliser des vieilles version de PHP et ne pas

évoluer. ● Ne pas utiliser de cache d'opcodes quand celui-

ci peut significativement optimiser les performances.

● Demo : install manuelle / Xdebug / KCacheGrind

Page 7: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Installation de PHP : débogage : Xdebug + Kcachegrind

Page 8: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Installation de PHP : quelques liens

● WAMP : http://www.wampserver.com● PHP : http://www.php.net

Page 9: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Espace de travail : quelques outils

● IDE simples– Scite / UltraEdit / Crimson Editor– Emacs / Xemacs / VI / VIM

● IDE de taille moyenne– PHP Edit / Komodo

● IDE Avancés– PHP Eclipse– Zend Studio

Page 10: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Développement : les architectures types

● Le site simple– Ne nécessite aucune ou peu de préparation– Stratégie de débogage à la "if" / "echo",

var_dump()● Le site lourd ou le système d'information

– Préparation préalable– Séparation du code et de la présentation– Logique métier indépendante– Débogage avancé

Page 11: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Développement : les architectures types

● Le portail complexe– Stratégie de performances en charge– Souvent basé sur un motif MVC– Débogage et profiling avancé– POO & gestion rigoureuse des exceptions– Gestion du projet sur IDE avancé– Documentation basée sur phpdoc– Gestion des événements / stratégie de

remontée d'informations

Page 12: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Développement : erreurs du monde professionnel

● Négliger les possibilités POO de PHP 5● Négliger les évolutions de PHP 5 : XML,

extensions nouvelle génération, SPL, etc.● Trop de souplesse, pas assez de rigueur● Des conventions trop vagues et peu appliquées,

voir inexistantes● Ne pas savoir doser entre procédural et objet

Page 13: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Choisir un framework

● Il existe de nombreux frameworks en PHP– Copix, Zend Framework, etc.

● Un bon framework est...– Pérenne : souvent mis à jour par une équipe

compétente et toujours compatible avec la dernière version stable de PHP.

– Simple et efficace : il ne comporte pas 36 couches d'abstractions et ne requiert pas 3 jours d'études pour être adopté.

Page 14: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

L'architecture MVC

● Une application basée sur MVC :

Modèle

Contrôleur

Vue

visiteur

Données templates

Bibliothèques

Page 15: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Exemple de framework : Zend

● Une volonté de simplicité● Basé sur une architecture MVC● Des conventions de développement complètes● De nombreuses libraires● Possibilité de créer ses objets ou d'en ajouter.

● Demo : petite appli de gestion de tâches

Page 16: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

La documentation

PHPDOC est la norme à respecter.

PHPDOCDOC

HTML

DOC

PDF

code source

Editeur

Page 17: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Exemple de balisage PHPDoc

<?php/** * Classe d'abstraction pour la base de données */class AFUP_Base_De_Donnees{ /** * Lien de la connection vers le serveur * @var string * @access private */

var $_lien = null;

/** * Contructeur. Etablit une connexion au serveur et sélectionne la base de données indiquée * * @param string $hote Adresse du serveur * @param string $base Nom de la base * @param string $utilisateur Nom de l'utilisateur * @param string $mot_de_passe Mot de passe * @access public * @return void */

function AFUP_Base_De_Donnees($hote, $base, $utilisateur, $mot_de_passe){

$this->_lien = mysql_connect($hote, $utilisateur, $mot_de_passe) or die('Connexion à la base de données impossible'); $this->selectionnerBase($base);

}}?>

Page 18: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Exemple de rendu par PHPDocumentor

Page 19: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Les tests unitaires

● Ils garantissent l'intégrité des opérations élémentaires et empêchent les régressions.

● L'investissement en temps passé au début est toujours rentabilisé par la suite : – Détection automatique des problèmes.– Détection et correction immédiate des

erreurs. – Détecte les exceptions à l'exécution.– Met en oeuvre des exemples d'utilisation.

Page 20: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Les tests de recette

● Les tests unitaires permettent de tester les objets techniques et métiers

● Les tests de recette simulent des scénarios utilisateurs

● Il existe différentes approches techniques :– Simulation du navigateur (Simple Test)– Exécution des tests dans le navigateur

(Selenium)

Page 21: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Exemple de test de recette

Page 22: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Optimiser les développements à plusieurs

● Utiliser un gestionnaire de versions– Objectifs– Principe

● Gestionnaires de versions courants– CVS– Subversion

● Différents types de clients– Application autonome– Intégration dans le système d'exploitation– Intégration dans l'IDE

Page 23: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Outils de maintenance

● Génération automatique des applications– Principe / objectif– Un outil : Phing

● Déploiement automatisé– Scripts CLI– Utilisation d'un gestionnaire (PEAR)

● Maintenant avancée– Les nightly builds

Page 24: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Exemple d'utilisation de Phing

<?xml version="1.0"?><project name="MonApplication" default="archivage" basedir="."> <target name="preparation"> <echo msg="Préparation ..." /> <mkdir dir="./build" /> </target> <target name="copie" depends="preparation"> <echo>Construction ...</echo> <copy file="./src/Fichier.php" to="./build/Fichier.php"/> <copy file="./src/Fichier2.php" to="./build/Fichier2.php"/> </target> <target name="archivage" depends="copie"> <echo message="Création de l'archive ..." /> <tar outfile="MonApplication.tar.gz" basedir="./build"/> </target> <target name="nettoyage"> <echo msg="Nettoyage ..."/> <delete file="./build"/> </target></project>

Page 25: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Optimisation à l'exécution : cache de bas niveau

● Qu'est-ce qu'un cache d'opcodes ?– Principe– Cache d'opcodes existants

● Utilisation avancée du cache d'opcodes– Mémoire partagée avec APC– Extraction d'informations

Page 26: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Fonctionnement des caches d'opcodes

Page 27: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Optimisation à l'exécution : cache de haut niveau

● Principe du cache de haut niveau– Cache de pages– Cache partiel (de données)

● Solutions de cache– Cache du moteur de templates– Cache manuel– Outils de cache

● jpcache● PEAR::Cache et PEAR::Cache_Lite

Page 28: Utilisation optimale et professionnelle de PHP

Utilisation optimale et professionnelle de PHP

Références

"Best practices PHP 5" est un ouvrage français spécialement dédié à l'utilisation optimale de PHP dans le monde professionnel.

Cet ouvrage répertorie, de la conception à l'exploitation, les meilleures pratiques de développement PHP et les erreurs courantes à éviter. Il est un condensé d'expertise acquise au cours de nombreuses années d'adoption de PHP en entreprise.

Guillaume Ponçon est actuellement responsable des formations PHP chez Anaska et organise des formations PHP expert et bonnes pratiques efficaces pour le monde professionnel, en collaboration avec les meilleurs experts PHP et J2EE francophones.

http://www.anaska.com/formation-php.php