Utiliser des fonctions optionnelles PHP

Un article de WikiTuto.

Jump to: navigation, search

Sommaire

Explication

Les extensions sont des fonctions PHP3 qui ne font pas partie du langage de base, mais des fonctions optionnelles ajoutées au langage sous la forme de bibliothèques dynamiques (.so sous Linux/Unix et .dll sous Win32). Depuis une version récente de PHP3, ces bibliothèques dynamiques sont toutes préfixées par php3_. Elles doivent se trouver dans le répertoire désigné par la directive extensions_dir du fichier de configuration php3.ini.

Utilisation des fonctions

Pour utiliser ces fonctions, vous avez le choix entre deux possibilités. Soit ces fonctions sont utilisées dans presque toutes vos pages PHP3, auquel cas vous pouvez spécifier dans php3.ini le chargement de ces bibliothèques à chaque lancement de l'interprêteur PHP3, soit ces fonctions ne sont utilisées qu'occasionnellement dans quelques pages (génération d'images GIF ou de fichier PDF) auquel cas leur chargement systématique induirait une consommation inutile de ressources. Dans ce second cas, la directive dl() (dynamic load) en début de script force le chargement à la demande. Lorsque PHP3 est utilisé en tant que module du serveur Apache, il est possible (pour des questions de sécurité) de désactiver le chargement dynamique des extensions par la directive enable_dl de php3.ini.

Sous Windows

En environnement Win32, l'ensemble des fonctions d'accès aux sources de données (SGBD/R, ODBC, ...) sont présents sous la forme d'extensions dynamiques. Chaque script effectuant une connexion base de données doit donc charger la bibliothèque correspondante.

Sous Linux

Sous Linux, pour obtenir le support des différentes bases de données, vous devrez la plupart du temps recompiler votre interprêteur PHP3 (et également le serveur HTTP si vous voulez utiliser Apache et mod_php). Faute de recompiler l'interprêteur PHP3, vous obtiendrez dès l'exécution de la première instruction liée à la base de données un message du genre "Call to unsupported function at line xxx". Si vous avez la chance d'utiliser Debian GNU/Linux, sachez que les modules chargeables pour PostgreSQL et MySQL sont disponibles sous la forme de paquêts .deb précompilés et peuvent être installés par un simple "apt-get install".

Exemple

Dans les exemples suivants, nous utiliserons le chargement à le demande, car il ne nécessite pas de modification de la configuration de PHP3. En contexte multi-utilisateur (plusieurs développeurs sur le même serveur HTTP et interprêteur PHP3), ceci permet à chacun de sélectionner les extensions dont il a besoin.

L'exemple de code suivant va utiliser l'extension php3_gd.so (php3_gd.dll sous Win32), ce qui sera l'occasion de parler brièvement des headers HTTP et des types MIME. Nous allons détailler le code permettant de générer à le demande un bouton dont les dimensions, la couleur de fond, et le texte seront fournis en paramètre à l'appel. Ensuite, puisque nous savons maintenant écrire des classes, nous écrirons une classe pour encapsuler le tout et le rendre plus facilement réutilisable, sous la forme d'un include.

Qu'allons nous réaliser ? Nous voulons un script qui génère une image GIF dont la hauteur, la largeur, la couleur de fond, ainsi que le libellé soient passés en paramètre à l'appel.

Voir aussi

Liens externes

Source

Boîte à outils
Annuaire gratuitCe site est listé dans la catégorie Informatique : Aide et astuces en informatique Annuaire