Utiliser Delphi For PHP et MySQL

Willy Vauvelle

Utiliser Delphi For PHP pour se connecter à une base MySQL

- Titre : Utiliser Delphi For PHP et MySQL

- Auteur : Willy Vauvelle

- Parution : 21 juin 2007

- Licence : Copyright ®  Willy Vauvelle. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Avant propos

- II. Création du projet et mise en place des fiches.

- III. Utilisation des composants BDD.

- III-A. Avec l'IDE.

- III-B. A la main.

- IV. Utilisation d'un composant visuel.

- V. Le déploiement

- VI. Conclusion

I - Avant propos

Avec Delphi For PHP CodeGear reprend le concept qui a fait le succès de Delphi à l'époque de Borland. Cette fois ci, le concept n'est plus appliqué au pascal objet mais au PHP . Le fonctionnement de l'IDE est très proche celui pour win32 ou .net. Leurs utilisateurs ne seront pas déroutés. Palette de composants, inspecteur d'objets, etc. Seul le langage change. Pour débuter je vous propose de réaliser un petit projet avec un composant Datagrid connecté à une base MySQL.

II - Création du projet et mise en place des fiches.

Ouvrez l'IDE et créez nouveau projet (File>new>application - pour la fiche principale) Un onglet unit2.php apparaît, il contient le code php de la fiche crée.

Faites ensuite (File>new>Data Module). Un Data Module est une fiche " invisible " qui sert uniquement à déposer des composants orientés données. Il est cependant tout à fait possible de déposer des composants de données sur la fiche principale mais ceci est à éviter pour alléger visuellement la fiche principale. Un onglet unit3.php apparaît. A ce moment sauvegardez le projet et faisant " Save All ".
Toute les unités .php vont être sauvegardées dans le répertoire de travail de Delphi For PHP que vous aurez choisi. Pour plus de lisibilité vous pouvez renommer unit2.php en fiche_princ.php et unit3.php en unit_datamodule.php. On observe l'écriture d'un document XML en même temps que l'unité proprement dite en PHP. Comme vous l'avez deviné, il contient les paramètres propres à la fiche. Donnez enfin un nom explicite à votre projet (d4php_mysql par exemple).

III - Utilisation des composants BDD.

Vous devez référencer le Data Module dans fiche_princ.php afin de pouvoir l'appeler depuis la fiche principale. Placez-vous sur fiche-princ.php et faites (file>useunit>unit_datamodule.php).
A ce stade, vous devez posséder un serveur MySQL et une base accessible. Pour ma part, j'utilise en local XAMPP pour mes tests.
Placez-vous sur l'unit_datamodule.php et regardez la palette des composants BDD fournis avec Delphi For PHP.. On observe deux parties : "data access" , "data controls" et plus bas une palette est dédiée à Interbase.

Deux options sont possibles : Laisser l'IDE vous guider ou bien placer vos composants à la main.

III-A - Avec l'IDE.

Utilisez le Data Explorer (onglet à coté du Project Manager) qui vous aidera à naviguer dans votre base.

Faites au préalable "register database", pour cela cliquez droit sur l'icône MySQL dans la fenêtre et renseignez les champs. Naviguez ensuite dans votre base et faites un "glisser-déposer" de la table qui vous intéresse sur la fiche unit_datamodule.php ... Et hop ! Delphi génère automatiquement les composants Database, Dataset et Table configurés correctement. Pratique.

III-B - A la main.

Placez sur votre unit_datamodule.php trois composants :
- Un composant Datatabase qui vous permettra de vous connecter à la base de données MySQL (d'autres bases sont supportées, regardez la propriété " driver name " de " database ").
- Un composant Table pour se connecter à une table précise. A noter que l'on peut utiliser un composant Query à la place qui permet d'envoyer des requêtes SQL à la table.
- Un composant Datasource qui va permettre de faire communiquer la table choisie et un composant visuel de type Datagrid.

Configuration des composants Il est préférable de procéder dans l'ordre suivant.

Pour le composant Database :
drivername : mysql //bien entendu
host : localhost // si vous êtes en local
username : root //si vous n'avez pas configuré mysql
userpassword : //vide si vous n'avez pas configuré mysql
databasename: test //choisir le nom d'une base, celle-ci est par défaut dans MySQL
connected : true //on connecte le composant

Pour le composant Table :
database : database1 //on se connecte au composant qui interagit avec la base.
tablename : user //table par defaut dans la base test de mysql.
active : true //on active le composant

Pour le composant Datasource :
dataset : table1

IV - Utilisation d'un composant visuel.

Passons à la fiche_princ.php pour y déposer les composants visuels de la palette Datacontrols. Pour l'exemple glissez une Dbgrid sur la fiche.
N'oubliez pas de remplir sa propriété Datasource en pointant vers le Datasource du Data Module.
Sélectionnez la fiche_princ.php et faites Run.
Tada ! Une datagrid avec édition des données sans rafraîchir la page.
Libre à vous ensuite d'ajouter d'autres composants visuels et de les connecter à la table voulue (propriété Data Source).

V - Le déploiement

Bien mais ce n'est pas tout, il faut maintenant déployer votre application car Delphi For PHP utilise son propre serveur Apache sur le port 3569 (par défaut). Pour cela il suffit de faire ("tools > deployement wizard") et de vous laissez guider. Choisissez le dossier web de votre serveur (htdocs par exemple). Et testez.
Dans le dossier de déploiement on observe divers répertoires :
On y découvre les technologies employées ... pour les plus connues :
- Delphi For PHP intègre la librairie xajax qui interface php et ajax .
- la vcl for php.
- la couche d'abstraction adodb (php5)
- le framework AJAX Qooxdoo.

VI - Conclusion

Bon et bien voilà un petit tutoriel sans prétention pour Delphi For PHP en espérant qu'il sera utile.
L'"esprit" Delphi qui a fait le grand succès de cet IDE est là.