IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ bibliothèques et extensions PHP

FAQ bibliothèques et extensions PHPConsultez toutes les FAQ

Nombre d'auteurs : 7, nombre de questions : 71, dernière mise à jour : 16 juin 2021 

 
OuvrirSommaireDivers

Une bibliothèque PHP est un script ou une collection de scripts écrits en PHP.

Ces scripts mettent à la disposition du programmeur des fonctions, constantes et classes afin de l'aider à développer plus rapidement.

Créé le 2 juin 2007  par Guillaume Rossolini

Lien : Définition de 'bibliothèque'
Lien : Les meilleurs cours sur les bibliothèques PHP

PHP est un langage libre et gratuit, il y a donc une quantité infinie de bibliothèques.

Créé le 2 juin 2007  par Guillaume Rossolini

Lien : Sources PHP

Une bibliothèque se présente généralement sous la forme d'une archive compressée.

La méthode habituelle d'installation est :
  • Télécharger l'archive compressée depuis le site officiel ;
  • Décompresser l'archive dans un répertoire de votre serveur ;
  • Vérifier que la bibliothèque fonctionne.
Créé le 2 juin 2007  par Guillaume Rossolini

Une extension est un fichier DLL (Windows) ou so (Linux).

Ce fichier permet d'ajouter des fonctionnalités à PHP sous la forme de nouvelles fonctions, constantes et classes. L'avantage d'une extension sur une bibliothèque est que le code est généralement exécuté plus raidement. Un inconvénient est que toute la bibliothèque est chargée en mémoire depuis le lancement du serveur Web.

Mis à jour le 2 juin 2007  par Guillaume Rossolini, Hachesse

Lien : Qu'est-ce qu'une bibliothèque ?
Lien : Les meilleurs cours sur les extensions PHP

Il est plus difficile de créer une extension qu'une bibliothèque, c'est pourquoi les principales extensions sont généralement hébergées sur le site de PHP.

Les extensions pour PHP sont divisées en trois catégories :
  • Les extensions qui font partie de la distribution standard ;
  • Les extensions PECL ;
  • Les extensions externes.

Les extensions standard sont utilisées très fréquemment par la majorité des développeurs PHP, elles sont donc incluses dans toutes les distributions de PHP.

Les extensions PECL sont habituellement moins sollicitées car elles répondent à des besoins bien plus spécifiques. Elles sont toutefois également disponibles sur le site de PHP.

Les extensions externes sont en fait toutes celles que le site de PHP ne répertorie pas. Il faut prendre garde avec ces extensions, car elles ne sont pas validées par le PHP Group. Leur installation est souvent largement plus complexe pour les utilisateurs de Windows, car la procédure de compilation n'est pas toujours bien détaillée et car les fichiers binaires ne sont pas compilés par le PHP Group. Certains groupes publient de très bonnes extensions qui ne sont pourtant pas proposées sur le site de PHP, il faut donc juger avec discernement...

Créé le 2 juin 2007  par Guillaume Rossolini

Lien : Site officiel des extensions PECL
Lien : Extensions PECL pour les utilisateurs de Windows

L'installation d'une extension dépend de votre système d'exploitation.

Les instructions sont toujours données sur le site officiel, mais elles suivent habituellement cette démarche :
  • Compiler l'extension en fonction de votre version de PHP ;
  • Placer le fichier généré dans votre répertoire d'extensions PHP ;
  • Activer l'extension par une directive du fichier php.ini ;
  • Redémarrer le serveur Web si PHP est utilisé en module (pas nécessaire pour une utilisation en CGI) ;
  • Vérifier que l'extension apparaît dans phpinfo().
Pour charger une extension sous Windows, il y a deux possibilités :
  • le chargement statique : il se fait par l'ajout du nom de l'extension à charger dans le fichier de configuration de PHP (php.ini) à la rubrique "Dynamic Extensions". Cette ligne doit prendre la forme "extension=modulename.extension". Par exemple, extension=php_ldap.dll permet de charger l'extension LDAP de PHP ;
  • le chargement dynamique : c'est un chargement d'une extension au cours de l'exécution d'un script PHP. Ce chargement se fait par la fonction dl() et prend en paramètre le nom de l'extension.

     
    Sélectionnez
    <?php dl("php_ldap.dll"); ?>
    Notes :
    • le chargement à la volée n'est possible que si la directive enable_dl du php.ini vaut TRUE ;
    • le chargement à la volée d'extension prend du temps et doit donc être utilisé avec modération.

De plus, dans les deux cas, les bibliothèques doivent être regroupées dans le répertoire des extensions de PHP. Ce répertoire est celui indiqué par la directive "extension_dir" à la section "Paths and Directories" du fichier php.ini.

Exemple : extension_dir="C:\php\extensions"

Créé le 2 juin 2007  par Hachesse, Guillaume Rossolini

La seule différence entre une bibliothèque et une extension est le fait que seule l'extension est compilée en fichier binaire, tandis que la bibliothèque est simplement constituée de scripts. Les deux offrent une extension au langage PHP.

Si une bibliothèque venait à être réécrite en code C puis compilée en fichier binaire, on pourrait parler d'extension.

Un framework et une bibliothèque/extension ont de nombreuses choses en commun, mais le framework est plus complet. Un framework utilise généralement plusieurs bibliothèques/extensions et il impose des règles d'écriture du code, tandis que les bibliothèques/extensions proposent simplement de nouvelles fonctionnalités.

Un framework n'est jamais compilé en fichier binaire, puisqu'il s'agit avant tout de conventions d'écriture du code.

Créé le 2 juin 2007  par Guillaume Rossolini

cURL présente les avantages d'être plus facile à utiliser et de pouvoir accéder à un "fichier" par son URL indépendamment de la valeur de la directive allow_url_fopen (ce qui n'est pas le cas de fopen, file, file_get_contents, ...). Il faut, toutefois, qu'elle soit installée.
Exemple d'utilisation :

 
Sélectionnez
$ch = curl_init('http://www.developpez.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, FALSE);
//curl_setopt($ch, CURLOPT_HEADER, TRUE) ; // Pour obtenir en plus les en-têtes 
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Créé le 8 août 2006  par Julp

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2011 Developpez.com Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.