1. Trang chủ
  2. » Công Nghệ Thông Tin

Pratique de MySQL et PHP- P53 pptx

5 244 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 168,72 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Comme on le voit avec la solution adoptée ci-dessus, la modification est d’une part tout à fait mineure, d’autre part invisible pour l’application qui se contente d’appeler le générateur

Trang 1

238 Chapitre 5 Organisation du développement

on ne visait pas une application portable Comme on le voit avec la solution adoptée ci-dessus, la modification est d’une part tout à fait mineure, d’autre part invisible pour l’application qui se contente d’appeler le générateur quand elle en a besoin

5.3.3 PDO, l’interface générique d’accès aux bases relationnelles

La dernière chose à faire pour assurer la portabilité de l’application est d’utiliser une interface normalisée d’accès à la base de données, qui cache les détails des API propres à chaque système, comme le nom des fonctions, l’ordre des paramètres,

le type du résultat, etc Depuis la version 5.1 de PHP cette interface existe de

manière standardisée sour le nom PHP Data Objects (PDO) PDO ne dispense pas

des précautions syntaxiques présentées ci-dessus, mais fournit des méthodes d’accès standardisées à une base de données, quel que soit le système sous-jacent

PDO ne présente aucune difficulté maintenant que vous êtes rôdés à l’interface

PHP/MySQL Voici un exemple similaire au script ApplClasseMySQL.php, page 119, pour interroger la table FilmSimple.

Exemple 5.9 exemples/ApplPDO.php:Utilisation de PDO

<? xml v e r s i o n = " 1 0 " e n c o d i n g = " i s o−8959−1 " ? >

<!DOCTYPE html PUBLIC "−//W3C/ / DTD XHTML 1 0 S t r i c t / / EN"

" h t t p : / / www w3 o r g / TR / xhtml1 /DTD/ xhtml1−s t r i c t dtd ">

<html xmlns= " h t t p : / / www w3 o r g / 1 9 9 9 / xhtml " xml : l a n g = " f r " >

<head >

< t i t l e > I n t e r f a c e PDO< / t i t l e >

< l i n k r e l = ’ s t y l e s h e e t ’ h r e f = " f i l m s c s s " t y p e = " t e x t / c s s " / >

</ head >

<body >

<h1> I l l u s t r a t i o n de l ’ i n t e r f a c e PDO< / h1>

<? php

/∗∗

∗ Exemple de programmation avec PDO

∗ /

r e q u i r e _ o n c e ( " Connect php " ) ;

t r y {

/ / On s e c o n n e c t e

$bd = new PDO( ’ m y s q l : h o s t = ’ SERVEUR ’ ; dbname= ’ BASE , NOM, PASSE ) ;

/ / On e x é c u t e une r e q u ê t e

$ r e s u l t a t = $bd−>que r y ( " SELECT ∗ FROM FilmSimple " ) ;

/ / On r é c u p è r e l e s l i g n e s

w h i l e ( $ f i l m = $ r e s u l t a t−>f e t c h (PDO : : FETCH_OBJ) ) {

Trang 2

5.3 Portabilité multi-SGBD 239

echo " <b> $ f i l m−> t i t r e </ b > , paru en $film −>annee , r é a l i s é "

" p a r $ f i l m−>p r e n o m _ r e a l i s a t e u r $film −>n o m _ r e a l i s a t e u r < br

/ >\n " ; }

/ / E t on f e r m e l e c u r s e u r

$ r e s u l t a t s−>c l o s e C u r s o r ( ) ;

}

c a t c h ( E x c e p t i o n $e ) {

echo ’ E r r e u r PDO : ’ $e−>getCode " −− " $e−>g e t M e s s a g e ( )

’ < b r / > ’ ;

}

? >

</ body >

</ html >

On commence donc par instancier une connexion avec la base de données Il s’agit d’un objet de la classe PDO, dont le constructeur prend en entrée les paramètres habituels : serveur, nom de la base, et compte de connexion On précise également que l’on se connecte à MySQL C’est le seul point à modifier pour utiliser un autre système

On peut ensuite exécuter une requête d’interrogation avec la méthode query() Elle renvoie un objet instance de PDOStatement qui sert à parcourir le résultat avec

la méthode fetch() On passe à cette dernière méthode le format (objet ou tableau) dans lequel on souhaite obtenir le résultat

Tout est donc semblable, à quelques détails près, à ce que nous utilisons depuis plusieurs chapitres pour MySQL Quand on veut protéger par un échappement les données à insérer dans une requête, on utilise la méthode quote() Notez égale-ment que PDO distingue les requêtes d’interrogation, exécutées avec query(), des requêtes de mise à jour pour lesquelles on utilise exec()

Si vous voulez créer une application portable multi-SGBD, l’apprentissage de PDO ne pose aucun problème Nous y revenons de manière plus complète dans le cadre de la programmation avec le Zend Framework, chapitre 9 Pour le site WEB

-SCOPE, nous continuons à utiliser la classe abstraite BD, conçue dans le même but, et dont la réalisation est décrite dans le chapitre 3 Rappelons que cette classe fixe les méthodes communes à tous les systèmes, et se décline en sous-classes implantant ces méthodes pour chaque système utilisé Rien n’empêche de revoir l’implantation de cette classe avec PDO, de manière transparente pour le reste de l’application Nous pouvons donc considérer que notre application est portable d’un SGBD à un autre

Trang 4

Architecture du site :

6

Ce chapitre est consacré au « motif de conception » (design pattern)

Modèle-Vue-Contrôleur (MVC) Ce pattern est maintenant très répandu, notamment pour la

réalisation de sites web, et mène à une organisation rigoureuse et logique du code

Un des objectifs est la séparation des différentes « couches » constituant une application, de manière à pouvoir travailler indépendamment sur chacune Il devrait par exemple toujours être possible de revoir complètement la présentation d’un site sans toucher au code PHP, et, réciproquement, le code PHP devrait être réalisé avec

le minimum de présupposés sur la présentation La question de l’évolutivité du code est elle aussi essentielle Un logiciel évolue toujours, et doit donc être modifiable facilement et sans dégradation des fonctions existantes (régression) Enfin, dans tous les cas, l’organisation du code doit être suffisamment claire pour qu’il soit possible de retrouver très rapidement la partie de l’application à modifier, sans devoir ouvrir des dizaines de fichiers

Ce chapitre présente le MVC dans un contexte pratique, en illustrant les diffé-rentes composantes par des fonctionnalités intégrées au site WEBSCOPE De fait, à

la fin du chapitre nous disposerons d’un cadre de développement MVC dans lequel l’ensemble du site prendra place Pour des raisons de clarté et d’introduction à des concepts parfois complexes, le MVC présenté ici vise davantage à la simplicité et

à la légèreté qu’à la richesse L’apprentissage de solutions plus complètes destinées à des développements à grande échelle devrait en être facilité J’espère vous convaincre ainsi de l’intérêt de cette approche pour toutes vos réalisations

Trang 5

242 Chapitre 6 Architecture du site : le pattern MVC

6.1 LE MOTIF DE CONCEPTION MVC

Cette introduction au MVC est volontairement courte afin de dire l’essentiel sans vous surcharger avec toutes les subtilités conceptuelles qui accompagnent le sujet

Je passe ensuite directement aux aspects pratiques avec la réalisation « maison » du MVC que nous allons utiliser pour implanter notre site

6.1.1 Vue d’ensemble

L’objectif global du MVC est de séparer les aspects traitement, données et présentation,

et de définir les interactions entre ces trois aspects En simplifiant, les données

sont gérées par le modèle, la présentation par la vue, les traitements par des actions

et l’ensemble est coordonné par les contrôleurs La figure 6.1 donne un aperçu de

l’architecture obtenue, en nous plaçant d’emblée dans le cadre spécifique d’une application web

Vue Modèle

requête HTTP

réponse HTTP

Contrôleur A Contrôleur B Action A1

Contrôleur

frontal

Action B1 Action A2

Figure 6.1 — Aperçu général d’une application MVC

La figure montre une application constituée de plusieurs contrôleurs, chacun constitué d’un ensemble d’actions La première caratéristique de cette organisation est donc de structurer hiérarchiquement une application Dans les cas simples, un seul contrôleur suffit, contenant l’ensemble des actions qui constituent l’application

Pour de très larges applications, on peut envisager d’ajouter un niveau, les modules,

qui regroupent plusieurs contrôleurs

Chaque requête HTTP est prise en charge par une action dans un contrôleur Il

existe un contrôleur frontal qui analyse une requête HTTP, détermine cette action et

se charge de l’exécuter en lui passant les paramètres HTTP

Au niveau du déroulement d’une action, les deux autres composants, la vue et

le modèle, entrent en jeu Dans le schéma de la figure 6.1, l’action A1 s’adresse au modèle pour récupérer des données et peut-être déclencher des traitements spéci-fiques à ces données L’action passe ensuite les informations à présenter à la vue qui

se charge de créer l’affichage Concrètement, cette présentation est le plus souvent

un document HTML qui constitue la réponse HTTP

Ngày đăng: 06/07/2014, 00:20

TỪ KHÓA LIÊN QUAN