6
Julien Pauli Guillaume Ponçon Bien développer en PHP Préface de Wil Sinclair les Cahiers du Programmeur

12392 Cahier ZEND - Librairie Eyrolles · bonnes pratiques du génie logiciel et les appliquer à PHP a permis de monter l’un des frameworks les plus puissants du marché, qui rend

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 12392 Cahier ZEND - Librairie Eyrolles · bonnes pratiques du génie logiciel et les appliquer à PHP a permis de monter l’un des frameworks les plus puissants du marché, qui rend

Programmez intelligent

Zend FrameworkEn imposant des règles strictes de gestion de code et en offrant une trèsriche bibliothèque de composants prêts à l’emploi, le framework PHP 5 ZendFramework guide le développeur web dans l’industrialisation de ses dévelop-pements, afin d’en garantir la fiabilité, l’évolutivité et la facilité de maintenance.

Cet ouvrage présente les meilleures pratiques de développement web avecPHP 5 et le Zend Framework : design patterns, MVC, base de données, sécu-rité, interopérabilité, tests unitaires, gestion des flux et des sessions, etc.Non sans rappeler les prérequis techniques et théoriques à l’utilisation du fra-mework, l’ouvrage aidera tant les développeurs débutants en PHP que leschefs de projets ou architectes aguerris souhaitant l’utiliser en entreprise.

Cod

e éd

iteur

: G

12392

ISB

N:

2-2

12

-12

39

2-0

39 €

978

2212

1239

20

avec les Cahiersdu Programmeur

Con

cept

ion

couv

ertu

re:

Nor

dcom

po

Architecte certifié PHP et ZendFramework, Julien Pauli estresponsable du pôle Zend Frame-work/PHP chez Anaska (groupeAlter Way). Contributeur de la pre-mière heure au framework en colla-boration avec Zend Technologies,conférencier et membre de l’AFUP,il publie des articles sur PHP dans lapresse.

Fondateur et gérant de la sociétéOpenStates (partenaire ZendT e c h n o l o g i e s e t A n a s k a ) ,Guillaume Ponçon intervientdepuis plus de sept ans auprès degrands comptes sur de nom-breuses missions d’expertise, deconseil et de formation PHP. Ingé-nieur EPITA, expert certifié PHP etZend Framework, il est aussi spé-cialiste des systèmes Unix/Linux etpratique Java et C/C++. Très im-pliqué dans la communauté PHP,avec la présidence de l’AFUP en2007-2008 et la création de laWeb TV PHPTV, il est l’auteur del’ouvrage Best practices PHP 5 etcoauteur du Mémento PHP et SQLaux éditions Eyrolles.

SommaireZend Framework • Inconvénients et avantages • Structure et principes • Conseilspour démarrer • Cahier des charges • Une application de réservations de salles •Spécifications fonctionnelles et techniques • Conventions • Installation et prise enmain • Téléchargement et configuration • Composants de base • Chargement desclasses • Gestion des messages • Débogage • Exceptions • Registre • Bases de don-nées • SGBD compatibles • PDO • Exécution de requêtes • Passerelles et modèlesde données • Performances et sécurité des données • Étendre Zend_Db • MVC : pre-mière approche • Parcours de la requête • Créer une vue • Créer un gabarit géné-ral • MVC avancé • Les objets de MVC • Routage • Dispatching • Plugins • Aides devues et d’action • Distributeur • Configuration • Sessions • Le composant session •Espaces de noms • Authentification • Adaptateurs • Listes de contrôle d’accès •Ressources et rôles des ACL • Internationalisation • Gestion de la locale •Multilinguisme • Gettext/TMX • Monnaies • Dates • Performances • Cache • APC •Gestion de la mémoire • Compilation • Sécurité • Validateurs • Filtres • Attaques cou-rantes et parades • Interopérabilité • REST • SOAP • Flux de données • Autres com-posants • E-mails • PDF • Formulaires • Outils et méthodologie • Zend Studio pourEclipse (IDE) • Débogage • Profilage • Tests • Utilisation avancée • Créer et dériverdes composants • Intégration • Annexes • Ce qu’est un framework • Rappel sur lesbases de données • Programmation orientée objet • Motifs de conception (design pat-terns) • MVC • PHP • Subversion • PHPUnit.

Julien PauliGuillaume Ponçon

Bien développer en PHP

Préface de Wil Sinclair

les Cahiersdu ProgrammeurJ.

Pau

liG

. Pon

çon

Zend

Fram

ewor

k12392_Cahier_ZEND 3/11/08 17:19 Page 1

AArmougom
Zone de texte
© Groupe Eyrolles, 2008, ISBN : 978-2-212-12392-0
Page 2: 12392 Cahier ZEND - Librairie Eyrolles · bonnes pratiques du génie logiciel et les appliquer à PHP a permis de monter l’un des frameworks les plus puissants du marché, qui rend

Le monde du Web évolue sans cesse. Aujourd’hui, on ne parle plus de siteInternet, comme c’était le cas avant l’an 2000, mais bien d’application web.

Une application web exploite un ensemble de technologies très diverses.Au début, un webmestre seul pouvait se charger de sa conception, alorsqu’aujourd’hui, des dizaines de personnes, aux compétences toujoursplus larges et poussées, sont souvent nécessaires pour évoluer vers le« Web 2.0 ».

PHP, XML, Services web, SQL et bases de données, Authentification,Cryptage, HTTP, Sécurité, JavaScript, Ajax, XHTML et Standardssont autant de termes relatifs à une ou plusieurs technologies plus oumoins différentes les unes des autres, et qui pourtant interagissent lesunes avec les autres.

D’ici quelques années, la différence entre une application dite clientlourd, qui s’exécute de manière autonome, et une application dite clientléger, qui nécessite un navigateur web, s’estompera. Les programmes ontde plus en plus tendance à être orientés Web.

La difficulté croissante liée à la conception d’applications web a faitnaître des solutions et des outils. Le framework en fait partie. Permet-tant de cadrer sérieusement les développements en proposant des règlesstrictes de développement, ainsi que des composants génériques et prêtsà l’emploi, Zend Framework est l’un d’entre eux.

Zend Framework est ainsi un cadre de travail pour PHP 5, langage dontl’adoption ne cesse de croître en entreprise, pour des projets toujoursplus importants et stratégiques.

Avant-propos

© Groupe Eyrolles, 2008

Page 3: 12392 Cahier ZEND - Librairie Eyrolles · bonnes pratiques du génie logiciel et les appliquer à PHP a permis de monter l’un des frameworks les plus puissants du marché, qui rend

Zend

Fra

mew

ork

- Bie

n dé

velo

pper

en

PHP

Pourquoi cet ouvrage ?C’est l’intérêt croissant pour les frameworks, et en particulier celui deZend – déjà adopté par de nombreux grand groupes dans le monde, quia motivé l’écriture de cet ouvrage. À travers cet outil, chacun pourrajuger combien PHP est mûr pour le monde de l’entreprise. Exploiter lesbonnes pratiques du génie logiciel et les appliquer à PHP a permis demonter l’un des frameworks les plus puissants du marché, qui rend pos-sible le développement d’applications web stratégiques et complexes.

Pourtant, à l’image exacte de PHP, la maîtrise de cet outil est loin d’êtresimple, même si sa prise en main ne présente pas de difficulté particu-lière. C’est ainsi que Zend Framework dispose d’un examen de certifica-tion officiel, piloté par Zend. Cet ouvrage apparaît donc naturellementcomme une présentation de Zend Framework et son utilisation, à traversun exemple concret et des détails précis sur de nombreux modules com-posant le framework.

À qui s’adresse ce livre ?Cet ouvrage cible avant tout le développeur, mais aussi le chef de projet,l’architecte ou encore le décideur. Le choix d’un framework est lourd deconséquences. Cet cahier aborde donc Zend Framework en largeur dansun premier temps, puis dans le détail de ses principaux composants. Il serévèle également être une ressource complète qui aborde de nombreuxprérequis dans ses annexes.• Décideurs et chefs de projet : découvrez comment Zend Framework

organise et cadre le développement de vos projets, de l’analyse à laconception, en passant par les tests et le déploiement.

• Développeurs et architectes : apprenez à maîtriser les composants deZend Framework et voyez comment celui-ci vous met sur une voiequi vous permettra de travailler en harmonie, grâce à des bonnes pra-tiques de programmation telles que les design patterns.

Structure de l’ouvrageCet ouvrage se divise en deux grandes parties :• les chapitres sont consacrés à Zend Framework. Une application

d’exemple sert de support, exposant un projet concret qui vous suivratout au long de votre lecture pour illustrer les différents concepts ;

© Groupe Eyrolles, 2008VIII

Page 4: 12392 Cahier ZEND - Librairie Eyrolles · bonnes pratiques du génie logiciel et les appliquer à PHP a permis de monter l’un des frameworks les plus puissants du marché, qui rend

Ava

nt-p

ropo

s

• les annexes abordent les notions théoriques et les prérequis, autant deconnaissances nécessaires pour adopter Zend Framework dans sonensemble et en faire une utilisation optimale.

Développement d’une application exempleLe chapitre 1 introduit le concept de framework, pour en arriver rapide-ment à Zend Framework. Nous y détaillons sa structure et les avantagesqu’il apporte.

Le chapitre 2 présente l’analyse du cahier des charges de l’applicationexemple qui est utilisée tout au long de l’ouvrage. Vous y trouverez aussiles conventions de rédaction que nous avons utilisées.

Le chapitre 3 explique comment installer Zend Framework et commentle manipuler de manière simple et rapide, afin de pouvoir passer ensuiteà une utilisation plus détaillée.

Une prise en main efficace des composants de base de Zend Frameworksera abordée dans le chapitre 4. Ces composants sont omniprésents dansle framework, nous les étudions donc de manière détaillée.

Le chapitre 5 est consacré aux bases de données. Notre applicationexemple en toile de fond, vous apprendrez de manière simple dans unpremier temps, puis plus poussée par la suite, à maîtriser un SGBD avecZend Framework.

Prendre en main rapidement le modèle MVC de Zend Frameworkconstitue l’objectif du chapitre 6. Tout ce qui caractérise ce modèle avecZend Framework y est présenté, et cela vous permettra de maîtriser sonfonctionnement par défaut.

Après cette prise en main de MVC, le chapitre 7 vous plongera au plusprofond du cœur de ce modèle, poussant le détail jusqu’à présenter tousles artifices qui le composent. Une telle compréhension est très impor-tante pour la maîtrise totale de vos applications futures.

Le chapitre 8, quant à lui, vous explique comment fonctionne la gestiondes sessions PHP avec Zend Framework, tout en s’attardant sur les con-cepts d’identification et de gestion des droits dans une application.

La gestion des langues et l’internationalisation sont ensuite abordéesdans le chapitre 9.

Le chapitre 10 est consacré aux performances, ou comment utiliser descomposants de Zend Framework permettant la montée en charge del’application.

La sécurité de vos applications étant un point crucial, le chapitre 11explique comment mettre en place une politique de sécurité efficace avecZend Framework.

© Groupe Eyrolles, 2008 IX

Page 5: 12392 Cahier ZEND - Librairie Eyrolles · bonnes pratiques du génie logiciel et les appliquer à PHP a permis de monter l’un des frameworks les plus puissants du marché, qui rend

Zend

Fra

mew

ork

- Bie

n dé

velo

pper

en

PHP

Ouvrir son application sur le monde extérieur sera l’objectif duchapitre 12, dans lequel vous prendrez en main les composants d’intéro-pérabilité de Zend Framework et la gestion des services web.

Le chapitre 13 traite d’autres composants divers que notre applicationutilise pour gérer des formulaires ou encore générer des documents PDF.

Comment s’équiper pour monter une application web avec ZendFramework ? Le chapitre 14 détaille les outils utiles à un développementefficace : IDE, débogueur, profileur et tests MVC.

Enfin, le chapitre 15 est un guide dans la création de vos propres com-posants, décrivant comment étendre ceux de Zend Framework, qui s’yprêtent à merveille.

Prérequis pour bien développerL’annexe A vous apprend ce qu’est un framework et à quoi un tel outilest utile en entreprise.

L’annexe B détaille de manière théorique et pratique les concepts géné-raux liés aux SGBD et aux bases de données.

La programmation orientée objet avec PHP 5 n’aura plus de secret pourvous après la lecture de l’annexe C.

Une bonne conception objet passe par la maîtrise des design patterns.Cette notion importante est détaillée en annexe D.

Quant à l’annexe E, elle est consacrée au concept théorique de MVC.

Bien programmer en PHP passe obligatoirement par la connaissance desrouages internes du langage : l’annexe F se charge de vous présentercomment fonctionne PHP.

L’annexe G est consacrée au logiciel Subversion, qui permet la gestionefficace des sources d’un projet. Cet outil est utilisé par Zend Fra-mework.

Enfin, la testabilité logicielle est gage de qualité et de gain de temps.Tester un programme est une pratique que tente de démystifierl’annexe H, centrée sur l’outil PHPUnit.

RemerciementsNous souhaitons remercier :

L’ensemble des personnes qui nous ont accompagnées de près ou de loindans cette épreuve, à commencer par nos interlocuteurs d’Eyrolles pour le

© Groupe Eyrolles, 2008X

Page 6: 12392 Cahier ZEND - Librairie Eyrolles · bonnes pratiques du génie logiciel et les appliquer à PHP a permis de monter l’un des frameworks les plus puissants du marché, qui rend

Ava

nt-p

ropo

s

temps et l’énergie qu’ils nous ont consacrés : Karine Joly, Muriel Shan SeiFan et toute l’équipe ayant participé à la mise en forme de cet ouvrage.

Les personnes qui nous ont soutenus et qui ont participé aux relectures –en particulier Romain Bourdon, Eric Colinet et Cyril Pierre de Geyer,ainsi que celles qui sont intervenues occasionnellement sous forme derelectures, corrections ou tests des exemples – Jean-Marc Fontaine,Damien Séguy, Lu Wang.

Nos sociétés respectives, qui nous ont apporté leur soutien et accordé dutemps : Anaska, spécialiste des formations sur les technologies opensource, et OpenStates, spécialiste des missions d’expertise PHP et ZendFramework auprès des entreprises.

Nos familles et nos conjoints qui nous ont également soutenus et à quinous devons de nombreuses soirées et week-ends.

Et enfin, l’équipe Zend de développement du Zend Framework, quinous a motivés, soutenus, et surtout sans qui cet ouvrage n’aurait natu-rellement jamais existé.

À PROPOS DES AUTEURS

Julien Pauli est architecte certifié PHP et Zend Fra-mework. Il travaille avec PHP tous les jours depuis 2003et possède des notions de Java et de C++. Formateur etconsultant chez Anaska (Alter Way), il est responsabledu pôle Zend Framework/PHP dans cet organisme deformation en technologies open source. Depuis 2006(les prémices du projet), il est également contributeurau Zend Framework en participant à l’élaboration deson code source, à la correction de bogues, à la traduc-tion de sa documentation et aux grandes lignes dedéveloppement, en collaboration directe avec leséquipes de Zend. Conférencier et consultant, il estmembre de l’AFUP et toujours prêt à consacrer dutemps à PHP. Il publie des articles dans la presse, et surhttp://julien-pauli.developpez.com.

Guillaume Ponçon est expert PHP et Zend Framework,fondateur et gérant de la société OpenStates, spécia-lisée dans les missions PHP stratégiques et partenaireZend Technologies et Anaska. Ingénieur EPITA, licenciéen informatique et certifié entre autres PHP, il inter-vient quotidiennement depuis plus de sept ans sur denombreuses missions d’expertise, de conseil et de for-mation PHP et Zend Framework, auprès de grandscomptes et d’entreprises francophones. Il est égalementspécialiste des systèmes Unix/Linux et pratique les tech-nologies Java et C/C++. Guillaume consacre beaucoupde temps à PHP et à sa communauté. Il est en particulierauteur de l’ouvrage Best practices PHP 5 et coauteur duMémento PHP et SQL, tous deux publiés aux éditionsEyrolles, conférencier et rédacteur sur de nombreuxsalons et revues de presse, président de l’AFUP 2007-2008, fondateur et producteur de la principale émissionWeb TV consacrée à PHP : PHPTV (http://www.phptv.fr).Pour en savoir plus : http://www.openstates.com.

© Groupe Eyrolles, 2008 XI