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

Pratique de MySQL et PHP- P77 potx

5 208 0

Đ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 262,52 KB

Nội dung

358 Chapitre 9. Introduction au Zend Framework précédents, et propose quelques fonctionnalités implantées avec le ZF. Vous pouvez en récupérer le code sur le site du livre. 9.1 MISE EN ROUTE La première chose à faire est d’installer le ZF et notre application. Une fois que cela fonctionne, lisez la fin de cette section qui présente l’organisation du code et les conventions d’écriture du ZF. Ce n’est pas évident, surtout au début, et il vaut mieux comprendre d’emblée comment cela fonctionne. 9.1.1 Installation d’une application ZF La tâche la plus simple est d’installer le Zend Framework. Allez sur le site http://framework.zend.com/ et récupérez l’archive contenant l’ensemble des composants. La version courante au moment où ces lignes sont écrites est la 1.6, et nous pouvons nous contenter de la version minimale, sans les utilitaires JavaScript Dojo. Décompressez l’archive. On obtient un répertoire ZendFramework-1.6 contenant un sous-répertoire library. Ce sous-répertoire contient lui-même un répertoire Zend qui est la racine de l’ensemble des classes du framework. Copiez ZendFramework- 1.6 sur votre disque, à un endroit accessible au serveur web. Vous pouvez aussi le renommer. Dans notre cas, il s’agit de ZF, placé dans /usr/local/share. REMARQUE – Le ZF est très flexible et tout ou presque tout (noms de répertoires, organisation des répertoires, etc.) est paramétrable. Nous allons être assez directif pour éviter de nous embrouiller avec une longue liste d’options. Une fois que vous aurez compris les principes, vous pourrez vous lancer dans les variantes si vous le souhaitez. Maintenant, récupérez l’archive du ZSCOPE, sur notre site. Décompressez-le et placez le répertoire racine zscope dans htdocs. Une autre possibilité est de récupérer le code sur le site CVS de http://webscope.cvs.sourceforge.net pour pouvoir faire des modifications et améliorer le ZS COPE. Un défi possible, si plusieurs lecteurs sont intéressés, est de refondre le W EBSCOPE développé avec notre MVC personnel, en une nouvelle version entièrement basée sur le Zend Framework. Si vous êtes tentés, allez voir sur le site de SourceForge l’état des choses au moment où vous lisez ce livre. Après cette installation initiale, il n’est pas encore possible d’accéder à ZS COPE avec l’URL http://localhost/zscope, car le ZF s’appuie sur un principe de redirection et de réécriture des requêtes HTPP dont il faut au préalable s’assurer le bon fonction- nement. 9.1 Mise en route 359 9.1.2 Redirection des requêtes avec le ZF L’application ZSCOPE contient deux sous-répertoires : 1. un répertoire application, avec tout le code d’une application MVC, à savoir les contrôleurs, les modèles et les vues ; voir plus loin pour des détails ; 2. un répertoire www destiné à contenir la partie publique de l’application, autrement dit tous les fichiers qui peuvent être directement référencés par une URL, et seulement ceux-là. L’idée est que tous les fichiers qui peuvent être directement envoyés à un navi- gateur (images, PDF, CSS, Javascript, etc.) sont dans www.Lecodedel’application elle-même n’est pas dans www mais dans application, afin d’interdire qu’on puisse accéder avec un navigateur à ce code, pour limiter les risques de fuite. Le seul fichier PHP qui se trouve dans www est index.php. C’est lui qui charge les parties de l’application nécessaires à la satisfaction d’une requête HTTP, et toutes ces requêtes lui sont adressées sans exception. Voilà pour les principes. Leur mise en œuvre suppose un peu de configuration. Configuration d’un hôte virtuel À la base, le site est accessible à l’URL http://localhost/zscope/www (au besoin rem- placez localhost par le nom de votre machine). On peut s’en contenter sur un site de test, mais rien n’empêche de tenter d’accéder à http://localhost/zscope/application,ce que l’on veut éviter. Le serveur Apache permet la définition d’hôtes virtuels qui correspondent à un site particulier, sur une machine particulière. On peut avoir plusieurs hôtes virtuels pour un même serveur web, ce qui mène à engendrer (virtuellement) plusieurs espaces de noms correspondant à la même adresse IP. Pour définir un hôte virtuel, éditez le fichier httpd.conf et ajoutez le bloc d’instruc- tions suivant : NameVirtualHost *:80 <VirtualHost *:80> ServerName zscope.local DocumentRoot /Applications/MAMP/htdocs/zscope/www </VirtualHost> Il faut de plus associer le nom zscope.local à l’IP 127.0.0.1 de la machine locale (si vous travaillez sur la machine locale). Pour cela on ajoute la ligne suivante dans /etc/hosts (sur Linux ou Mac OS) ou c:/windows/system32/drivers/etc/hosts (Windows). Maintenant, redémarrez Apache, et vous devriez pouvoir accéder au site ZS COPE àl’URLhttp://zscope.local. Toute l’arboresscence du site externe à www,et en particulier application, est devenue invisible et inaccessible. 360 Chapitre 9. Introduction au Zend Framework Tout rediriger vers index.php La seconde partie de la configuration consiste à effectuer une réécriture des requêtes HTTP pour les rediriger systématiquement vers le fichier index.php. On utilise pour cela le module mod_rewrite d’Apache, et des instructions placées dans un fichier .htaccess. Vérifiez que le module mod_rewrite est bien actif pour votre serveur Apache en cherchant la ligne suivante dans httpd.conf , sinon ajoutez-la. LoadModule rewrite_module modules/mod_rewrite.so Ensuite, vous pouvez vous appuyer sur le fichier .htaccess présent dans www.Voici son contenu : #R´e´ecriture des requ^etes RewriteEngine On RewriteCond %{REQUEST_URI} !\.(js|ico|gif|jpg|png|css)$ RewriteRule .* index.php Un fichier .htaccess contient des instructions à destination du serveur Apache, propres aux fichiers contenus dans le répertoire courant. Ici, on demande à ce que toutes les URL autres que celles référençant des fichiers à transmettre directement au navigateur (images, Javascript, CSS, PDF, etc.) soient redirigées vers index.php. Essayez par exemple d’accéder à l’adresse http://zscope.local/essai.php. Si votre configuration fonctionne, le serveur vous redirigera vers index.php. Cela supprime en grande partie les messages 404 Not Found renvoyés par le serveur quand une URL ne correspond pas à une ressource existante. Ce message ne peut plus apparaître que pour les URL non redirigées, comme par exemple un fichier image qui n’existe pas. Si tout va bien, vous devriez cette fois accéder à la page d’accueil et voir l’affichage de la figure 9.1. Comme vous le voyez, il s’agit du W EBSCOPE,dansunétatembryon- naire, puisqu’aucune fonction n’est réalisée. Les contrôleurs et actions existants sont de simples illustrations des composants du ZF. REMARQUE – Si l’application ZSCOPE n’est pas à la racine de votre serveur web (par exemple si vous y accédez avec http://localhost/zscope), vous devez définir le paramètre base_url dans le fichier application/config.ini (sur le même exemple, le paramètre doit être zscope). Sinon, les images et feuilles de style CSS ne seront pas trouvées. 9.1.3 Organisation et conventions Maintenant, jetons un coup d’œil à l’ensemble de l’organisation du site, résumée dans la figure 9.2. Elle suit les règles par défaut du Zend Framework. Bien que cela puisse sembler inutilement compliqué de prime abord, il faut se souvenir qu’on cherche à gérer des applications larges et complexes. Le découpage très prononcé en une hiérarchie de répertoires assez profonde a l’avantage de faciliter la localisation des différentes parties d’une application. 9.1 Mise en route 361 Figure 9.1 — Page d’accueil du ZSCOPE models www js css images index.php controllers views helpers scripts zscope application IndexController.php, InscriptionController.php, Internaute.php, Film.php, Role.php config.ini BaseURL.php index inscription index.phtml index.phtml, layout.phtml Figure 9.2 — Organisation (minimale) du code pour une application Zend Vous pouvez déjà remarquer qu’il s’agit d’une extension de la structuration adop- tée pour notre MVC simplifié utilisé pour la réalisation du W EBSCOPE 1 .Une 1. Il serait plus juste d’admettre que notre MVC est une simplification radicale du ZF. 362 Chapitre 9. Introduction au Zend Framework différence est le répertoire www qui ne contient que les fichiers qui peuvent être référencés par une URL dans un navigateur. Tout le reste se trouve dans application. Comme dans notre MVC, ce dernier contient trois sous-répertoires correspondant respectivement aux contrôleurs, aux modèles et aux vues. Il contient également un fichier de configuration, config.ini. Les fichiers des contrôleurs Zend sont nommés Nom Controller,oùNom repré- sente le nom du contrôleur, commençant par une majuscule. Ici, nous avons les contrôleurs index, inscription, etc., correspondant aux fichiers IndexController.php, InscriptionController.php, etc. Comme dans notre MVC, un contrôleur est une classe constituée d’actions, méthodes dont le nom se termine par Action. Nous y revenons page 373. Les modèles sont des classes PHP. Les classes représentant des données persis- tantes sont construites selon une mapping objet-relationnel proposé par le ZF qui permet de naviguer dans la base sans effectuer de requêtes SQL. Voir page 379. Enfin, le répertoire views contient les vues. Sa structuration est un peu plus compliquée. Les fragments de pages HTML sont dans le sous-répertoire scripts,et on trouve encore un sous-répertoire pour chaque contrôleur. Les fichiers de vues ont tendance à proliférer, d’où une structuration en répertoires. Les fichiers ont pour extension .phtml car il s’agit d’un mélange de PHP et de HTML. Notez également dans scripts la présence du fichier layout.phtml, qui contient la mise en forme graphique du site. Dans ce qui suit, référez-vous au schéma de la figure 9.2 pour retrouver les fichiers décrits. 9.1.4 Routage des requêtes dans une application Zend Une requête HTTP adressée à l’application a le format suivant : http://zscope.local/ctrl/action[params] Ici, ctrl et action représentent respectivement le nom du contrôleur et le nom de l’action, et leur valeur par défaut est index. La forme de la requête est étrange puisqu’on semble faire référence à un sous-répertoire ctrl de la racine du site web, et même à un sous-répertoire action. Ces répertoires, comme nous l’avons vu, n’existent pas, mais le mécanisme de redirection renvoie la requête vers index.php. À ce moment-là un processus de routage implanté par le Zend Framework analyse la requête et détermine le contrôleur et l’action demandés. La méthode implantant l’action du contrôleur ctrl est alors exécutée. Si, par exemple, on appelle http://zscope.local/model/simpletbl,laméthode simpletblAction() du contrôleur ModelController sera exécutée par le script index.php. Cette réécriture permet de normaliser l’adressage des fonctionnalités d’une appli- cation Zend. Les paramètres passés à un action peuvent l’être soit sous la forme standard ?nom=valeur, soit à nouveau sous la forme /nom/valeur. . http://zscope.local/model/simpletbl,laméthode simpletblAction() du contrôleur ModelController sera exécutée par le script index.php. Cette réécriture permet de normaliser l’adressage des fonctionnalités. Décompressez-le et placez le répertoire racine zscope dans htdocs. Une autre possibilité est de récupérer le code sur le site CVS de http://webscope.cvs.sourceforge.net pour pouvoir faire des modifications et. Javascript, etc.) sont dans www.Lecodedel’application elle-même n’est pas dans www mais dans application, afin d’interdire qu’on puisse accéder avec un navigateur à ce code, pour limiter les risques de

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN