Zend - The PHP Company


Déployez une application exemple d'accès à une base données sur Zend Server

Étape n°1 : téléchargez et extrayez des fichiers de l'application exemple

Étape n°2 : copiez le répertoire extrait dans la racine du document de Zend Server

Étape n°3 : accordez des autorisations d'écriture pour les données/le répertoire

Remarque: lors de l'exécution d'Apache sur Windows, les autorisations d'écriture sont définies par défaut. Vous pouvez alors passer cette étape.

Cette application devra écrire les données sur le système de fichiers. Vous devez par conséquent donner à l'utilisateur du serveur Web les autorisations d'écriture pour les données / le répertoire de votre application exemple :

Sur Linux/Mac:  exécutez la commande chown <web_server_user> <path_to_data_directory>.
Remplacez <web_server_user> par le nom de l'utilisateur de votre serveur Web et remplacez <path_to_data_directory> par l'emplacement des données / du répertoire (situés dans le répertoire d'application extrait).

Ex. : exécutez la commande suivante : # chown www-data /var/www/jukebox/data

Sur Windows/IIS: cliquez avec le bouton droit de la souris sur les données / le répertoire (situés dans le répertoire d'application extrait) puis sélectionnez Properties | Security (Propriétés | Sécurité). Veillez à ce que l'utilisateur de votre serveur Web dispose des autorisations d'écriture nécessaires pour ce dossier. Au besoin, cliquez sur Add (Ajouter) pour ajouter l'utilisateur du serveur Web et cochez la case ‘Write’ (Écriture) dans la liste des autorisations.

Étape n°4 : exécutez votre application 

Ouvrez un navigateur Web et allez à la page principale de l'application, située à l'emplacement suivant : http://localhost:<port_number>/jukebox/index.php.

Félicitations - Vous pouvez maintenant utiliser votre application !



Que faire ensuite ?

  • Reportez-vous à la section Derrière le code, ci-dessous, pour en savoir plus sur le code PHP que vous venez d'exécuter
  • Pour accéder à d'autres exemples d'applications pouvant être exécutées sur Zend Server, cliquez ici
  • Pour en savoir plus les principes de base de PHP, consultez la catégorie PHP 101

Derrière le code

L'application exemple « jukebox » est une application PHP simple de gestion de bibliothèque musicale. Elle se caractérise par l'utilisation de plusieurs fichiers PHP dans une application et par l'utilisation de l'interface PDO pour se connecter à la base de données et l'interroger.
Pour afficher le code source de l'application, ouvrez les fichiers de l'application dans un éditeur de texte ou dans un IDE tel que Zend Studio pour Eclipse.

Remarque:
pour importer les fichiers dans Zend Studio pour Eclipse, créez un projet PHP appelé ‘jukebox’ et importez-y les fichiers de l'application en allant à File menu | Import | General | File Sytem (Fichier| Importer | Général | Système de fichiers) et en recherchant le répertoire ‘jukebox’ extrait.


 Aperçu des fonctions de chacun des fichiers de notre application :

jukebox/index.php
Il s'agit de la page principale de l'application. Elle comprend une liste des éléments actuellement stockés dans la base de données. Grâce à l'expression require_once(), ce fichier charge les autres fichiers contenant des fonctions communes telles que l'interrogation de la base de données, le filtrage des entrées ou la restitution de l'en-tête et du pied de page HTML.

jukebox/edit.php
Ce fichier restitue la page Add/Edit song (Ajouter/Modifier une chanson). Les opérations effectuées par le fichier varient selon les paramètres de demande HTTP envoyés ($_GET, $_POST and $_SERVER).  Cela est déterminé par l'action sélectionnée par l'utilisateur :
  • Lorsqu'un utilisateur clique sur Add (Ajouter), sur la page principale, une demande GET (Obtenir) est envoyée et le formulaire Add Song (Ajouter une chanson) s'affiche.
  • Lorsqu'un utilisateur clique sur Edit (Modifier) à côté de l'une des chansons de la page principale, une demande GET est envoyée pour récupérer les données de la chanson dans la base de données et le formulaire Edit Song (Modifier une chanson) s'affiche.
  • Lorsqu'un utilisateur clique sur Save (Enregistrer), dans le formulaire Add/Edit Song (Ajouter/Modifier une chanson), les entrées nouvelles/modifiées sont enregistrées dans la base de données et l'utilisateur est redirigé vers la page d'accueil.

jukebox/common (html-bottom.php and html-top.php)
Ce répertoire contient des fichiers PHP qui restituent des éléments du modèle HTML (en-tête et pied de page) communs à toutes les pages de l'application.

jukebox/config/jukebox-config.php
Il s'agit du fichier de configuration de l'application lu par toutes les pages de l'application. Dans cette application, il stocke uniquement les données de connexion à la base de données.

jukebox/data (jukebox.sq3 and schema.sql)
Ce répertoire contient les fichiers de la base de données SQLite. Par défaut, l'application jukebox se connecte à une base de données SQLite intégrée, mais il peut être configuré de manière à utiliser d'autres RDBMS (Relational Database Management Systems - Systèmes de gestion de base de données relationnelle) pris en charge par PDO.

Remarque
: pour plus de simplicité, nous avons inclus les fichiers de la base de données sous la structure du répertoire racine du document. Néanmoins, pour des raisons de sécurité, il est recommandé de placer les fichiers de la base de données en dehors de la racine du document. Dans la plupart des applications de production, un RDBMS sur serveur, tel que MySQL ou Oracle, est utilisé.

jukebox/library (JukeboxDb.php, JukeboxSong.php and JukeboxDataException.php)
Ce répertoire contient des fichiers de bibliothèque utilisés par d'autres parties de l'application, pour accéder à des données stockées dans la base de données :
  • JukeboxDb.php – Ce fichier définit la classe JukeboxDb, utilisée sur l'ensemble de l'application pour se connecter à la base de données ou l'interroger. La classe ‘englobe’ les classes PDO et fournit une interface d'accès simplifiée à la base de données.
  • JukeboxSong.php – Ce fichier définit la classe JukeboxSong utilisée sur l'ensemble de l'application pour représenter une chanson. Chaque chanson est représentée par une instance de cette classe. Toutes les propriétés de chanson (artiste, titre, etc.) sont stockées comme des propriétés à l'intérieur des objets de cette classe. Lorsque les données de chanson sont récupérées dans la base de données, elles sont intégrées aux instances de la classe.
  • JukeboxDataException.php – Ce fichier définit la classe JukeboxDataException qui étend la classe Exception intégrée de PHP. Il est utilisé pour représenter les erreurs liées à l'accès à la base de données dans l'application.

jukebox/style/jukebox.css
Il s'agit de la feuille de style de l'application définissant les propriétés visuelles de l'application. Ce fichier n'est pas analysé par PHP. Il est en revanche analysé par le navigateur lorsque des pages sont restituées.

Ressources
FORUMS

Forums

En savoir plus»

WHITE PAPER

Application Leadership Today -- DevOps: Agile Delivery for Competitive Edge

En savoir plus»

Etude de cas

Découvrez comment Offers.com a utilisé les solutions Zend pour développer et gérer un site e-commerce réussi.

En savoir plus»

WEBINAR

Zend Server 6 : Comment réduire le fossé entre développeurs et opérationnels

En savoir plus»

Témoignages des clients

   Lorsque nous analysons notre investissement dans les technologies Zend, nous considérons que notre ROI porte sur plusieurs fronts. Il est dorénavant très facile de gérer l'environnement PHP, la détection d'erreur et le reporting nous aident à réduire le temps passé à corriger les problèmes tout en améliorant la disponibilité et la réactivité de l'application. Rien qu'avec le clustering de sessions, notre investissement chez Zend est plus que rentable au moment où nous avons mis en place ces technologies.   

Eric Long,Sr. Manager, E-Business,

Levolor

   Le nombre de problèmes que nous avons pu identifier et résoudre dès la première semaine d'utilisation de Zend Server a déjà remboursé notre investissement. Un avantage exponentiel à mesure que notre application e-commerce croît.   

Josh ButtsWeb Development Manager, Offers.com

   Nous avons utilisé la fonctionnalité Code Tracing pour optimiser les paramètres de DataCache. Cela aurait été plus difficile à faire sans la capacité de tracer le code directement en environnement de production. Nous avons ainsi obtenu un énorme gain de performance.    

Morgan NilssonSystem Developer, Ateles Consulting AB