From: Jouni Ahto Date: Fri, 9 Jun 2000 02:51:43 +0000 (+0000) Subject: - Added skeleton module creating script. X-Git-Tag: PRE_EIGHT_BYTE_ALLOC_PATCH~20 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c9dfab50246476d19d79a71135d48a021711c274;p=php - Added skeleton module creating script. --- diff --git a/ext/skeleton/create_module b/ext/skeleton/create_module new file mode 100755 index 0000000000..b5b18c66e0 --- /dev/null +++ b/ext/skeleton/create_module @@ -0,0 +1,122 @@ +#!/bin/sh + +extname="$1" +EXTNAME=`echo $1|tr a-z A-Z` + +cd .. + +givup() { + echo $* + exit 1 +} + +if test "$extname" = ""; then + givup "usage: $0 extension-name" +fi + +if test -d "$extname" ; then + givup "Directory $extname already exists." +fi + +test -f ext_skel || givup "ext_skel must be in the current directory" + +if echo '\c' | grep -s c >/dev/null 2>&1 +then + ECHO_N="echo -n" + ECHO_C="" +else + ECHO_N="echo" + ECHO_C='\c' +fi + +echo "Creating directory" + +mkdir $extname || givup "Cannot create directory $extname" + +cd $extname +chmod 755 . + +$ECHO_N "Creating basic files:$ECHO_C" + +$ECHO_N " config.m4$ECHO_C" +cat >config.m4 <Makefile.in <.cvsignore < $extname.c + +$ECHO_N " php_$extname.h$ECHO_C" +cat ../skeleton/php_skeleton.h | sed -e "s/_extname_/$extname/g" | sed -e "s/_EXTNAME_/$EXTNAME/g" > php_$extname.h + +$ECHO_N " $extname.php$ECHO_C" +cat ../skeleton/skeleton.php | sed -e "s/_extname_/$extname/g" | sed -e "s/_EXTNAME_/$EXTNAME/g" > $extname.php + +chmod 644 * + +echo " [done]." + +cat <v) +#define _EXTNAME_LS_FETCH() php__extname__globals *_extname__globals = ts_resource(gd__extname__id) +#else +#define _EXTNAME_G(v) (_extname__globals.v) +#define _EXTNAME_LS_FETCH() +#endif + +#else + +#define _extname__module_ptr NULL + +#endif + +#define phpext__extname__ptr _extname__module_ptr + +#endif /* _PHP__EXTNAME__H */ + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/ext/skeleton/skeleton.c b/ext/skeleton/skeleton.c new file mode 100644 index 0000000000..3c261bd2de --- /dev/null +++ b/ext/skeleton/skeleton.c @@ -0,0 +1,144 @@ +/* + +----------------------------------------------------------------------+ + | PHP version 4.0 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997, 1998, 1999, 2000 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.02 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available at through the world-wide-web at | + | http://www.php.net/license/2_02.txt. | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: | + +----------------------------------------------------------------------+ + */ + +/* $Id: */ + +#include "php.h" +#include "php_ini.h" +#include "php__extname_.h" + +/* You should tweak config.m4 so this symbol (or some else suitable) + gets defined. +*/ +#if HAVE__EXTNAME_ + +/* Use this for type if your module registers any resources. You can of course + rename it and add more if needed. These can be true globals, they don't need + thread safety. Remove if not needed. +*/ +static int le_extname_; + +#ifdef ZTS +int _extname__globals_id; +#else +php__extname__globals _extname__globals; +#endif + +/* Every user visible function must have an entry in _extname_functions[]. +*/ +function_entry _extname__functions[] = { + PHP_FE(_extname__test, NULL) + {NULL, NULL, NULL} /* Must be the last line in $extension_functions[] */ +}; + +zend_module_entry _extname__module_entry = { + "_extname_", + _extname__functions, + PHP_MINIT(_extname_), + PHP_MSHUTDOWN(_extname_), + PHP_RINIT(_extname_), /* Replace with NULL if there's nothing to do at request start */ + PHP_RSHUTDOWN(_extname_), /* Replace with NULL if there's nothing to do at request end */ + PHP_MINFO(_extname_), + STANDARD_MODULE_PROPERTIES +}; + +#ifdef COMPILE_DL__EXTNAME_ +ZEND_GET_MODULE(_extname_) +#endif + +/* Remove comments and fill if you need to have entries in php.ini +PHP_INI_BEGIN() +PHP_INI_END() +*/ + +PHP_MINIT_FUNCTION(_extname_) +{ +/* Remove comments if you have entries in php.ini + REGISTER_INI_ENTRIES(); +*/ + return SUCCESS; +} + +PHP_MSHUTDOWN_FUNCTION(_extname_) +{ +/* Remove comments if you have entries in php.ini + UNREGISTER_INI_ENTRIES(); +*/ + return SUCCESS; +} + +/* Remove if there's nothing to do at request start */ +PHP_RINIT_FUNCTION(_extname_) +{ + return SUCCESS; +} + +/* Remove if there's nothing to do at request end */ +PHP_RSHUTDOWN_FUNCTION(_extname_) +{ + return SUCCESS; +} + +PHP_MINFO_FUNCTION(_extname_) +{ + php_info_print_table_start(); + php_info_print_table_header(2, "_extname_ support", "enabled"); + php_info_print_table_end(); + + /* Remove comments if you have entries in php.ini + DISPLAY_INI_ENTRIES(); + */ +} + +/* Remove the following function when you have succesfully modified config.m4 + so that your module can be compiled into PHP, it exists only for testing + purposes. +*/ + +/* Every user-visible function in PHP should document itself in the source */ +/* {{{ proto string _extname__test(string arg) + Return a string to confirm that the module is compiled in */ +PHP_FUNCTION(_extname__test) +{ + zval **arg; + int len; + char string[256]; + + if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE) { + WRONG_PARAM_COUNT; + } + + convert_to_string_ex(arg); + + len = sprintf(string, "Congratulations, you have successfully modified ext/_extname_/config.m4, module %s is compiled in PHP", Z_STRVAL_PP(arg)); + RETVAL_STRINGL(string, len, 1); +} +/* }}} */ +/* The previous line is meant for emacs, so it can correctly fold and unfold + functions in source code. See the corresponding marks just before function + definition, where the functions purpose is also documented. +*/ + +#endif /* HAVE__EXTNAME_ */ + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/ext/skeleton/skeleton.php b/ext/skeleton/skeleton.php new file mode 100644 index 0000000000..953ea2cf6f --- /dev/null +++ b/ext/skeleton/skeleton.php @@ -0,0 +1,10 @@ +