SommaireTelecharger la documentationChapitre suivantChapitre precedent  

  .: News :.: Edito :.: Scripts :.: Forum :.: Erreurs :.: Jobs :. 
 
Sommaire

Améliorer PHP 4.0

Préface
Présentation
Capacités d'extensions
Disposition du code source
Le système de compilation automatique de PHP
Créer une extension
Utiliser une extension
Résolution de problèmes
Présentation des sources
Gestion des arguments
Créer des variables
Afficher des informations
Valeurs retournées

7.6 Créer une extension

Nous allons commencer par la création d'une extension très simple, qui ne fera rien de plus qu'implémenter une fonction qui retourne l'entier qu'elle reçoit en paramètre. <> montre le code source.

Une extension simple

/* include les headers standard */
#include "php.h"
/* déclaration de fonctions à exporter */
ZEND_FUNCTION(first_module);
/* Liste de fonctions compilées pour que Zend sache ce qui se passe dans ce module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};
/* informations sur le module compilé */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};
/* Implémente une routine "stub" standard pour nous présenter à Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif
/* Implémente la fonction qui sera disponible dans PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", ¶meter) == FAILURE) {
        return;
    }
    RETURN_LONG(parameter);
}

Ce code contient un module PHP complet. Nous expliquerons le code source en détails rapidement, mais tout d'abord, nous devons détailler le processus de compilation (cela permettra aux impatients d'expérimenter avant que nous commençions à nous plonger dans les discussions sur les API).

Note

Le code source d'exemple nous montre quelques caractéristiques utilisées en PHP 4.1.0 et supérieur. Il ne compilera pas avec des versions PHP 4.0.x et plus ancien.


Chapitre précédentChapitre suivantAccueil nexen.net