/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2016 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_01.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. |
+----------------------------------------------------------------------+
| Author: |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_ccvita.h"
/* If you declare any globals in php_ccvita.h uncomment this:
ZEND_DECLARE_MODULE_GLOBALS(ccvita)
*/
/* True global resources - no need for thread safety here */
static int le_ccvita;
/* {{{ PHP_INI
*/
/* Remove comments and fill if you need to have entries in php.ini
PHP_INI_BEGIN()
STD_PHP_INI_ENTRY("ccvita.global_value", "42", PHP_INI_ALL, OnUpdateLong, global_value, zend_ccvita_globals, ccvita_globals)
STD_PHP_INI_ENTRY("ccvita.global_string", "foobar", PHP_INI_ALL, OnUpdateString, global_string, zend_ccvita_globals, ccvita_globals)
PHP_INI_END()
*/
/* }}} */
/* Remove the following function when you have successfully 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 confirm_ccvita_compiled(string arg)
Return a string to confirm that the module is compiled in */
PHP_FUNCTION(confirm_ccvita_compiled)
{
char *str = NULL;
int argc = ZEND_NUM_ARGS();
int str_len;
char *result;
if (zend_parse_parameters(argc TSRMLS_CC, "s", &str, &str_len) == FAILURE)
return;
str_len = spprintf(&result, 0, "<a href=\"%.78s\">Link</a>", str);
RETURN_STRINGL(result, str_len, 0);
}
/* }}} */
/* The previous line is meant for vim and 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. Please
follow this convention for the convenience of others editing your code.
*/
/* {{{ php_ccvita_init_globals
*/
/* Uncomment this function if you have INI entries
static void php_ccvita_init_globals(zend_ccvita_globals *ccvita_globals)
{
ccvita_globals->global_value = 0;
ccvita_globals->global_string = NULL;
}
*/
/* }}} */
/* {{{ PHP_MINIT_FUNCTION
*/
PHP_MINIT_FUNCTION(ccvita)
{
/* If you have INI entries, uncomment these lines
REGISTER_INI_ENTRIES();
*/
return SUCCESS;
}
/* }}} */
/* {{{ PHP_MSHUTDOWN_FUNCTION
*/
PHP_MSHUTDOWN_FUNCTION(ccvita)
{
/* uncomment this line if you have INI entries
UNREGISTER_INI_ENTRIES();
*/
return SUCCESS;
}
/* }}} */
/* Remove if there's nothing to do at request start */
/* {{{ PHP_RINIT_FUNCTION
*/
PHP_RINIT_FUNCTION(ccvita)
{
return SUCCESS;
}
/* }}} */
/* Remove if there's nothing to do at request end */
/* {{{ PHP_RSHUTDOWN_FUNCTION
*/
PHP_RSHUTDOWN_FUNCTION(ccvita)
{
return SUCCESS;
}
/* }}} */
/* {{{ PHP_MINFO_FUNCTION
*/
PHP_MINFO_FUNCTION(ccvita)
{
php_info_print_table_start();
php_info_print_table_header(2, "ccvita support", "enabled");
php_info_print_table_end();
/* Remove comments if you have entries in php.ini
DISPLAY_INI_ENTRIES();
*/
}
/* }}} */
/* {{{ ccvita_functions[]
*
* Every user visible function must have an entry in ccvita_functions[].
*/
//包内函数列表
const zend_function_entry ccvita_functions[] = {
PHP_FE(confirm_ccvita_compiled, NULL) /* For testing, remove later. *///每增加一个函数,加一条
PHP_FE_END /* Must be the last line in ccvita_functions[] *///表函数列表结束
};
/* }}} */
/* {{{ ccvita_module_entry
*/
zend_module_entry ccvita_module_entry = {
STANDARD_MODULE_HEADER,
"ccvita",//扩展报名
ccvita_functions,//扩展中的函数列表,上边数组
PHP_MINIT(ccvita),//模块时初始化, 模块切换到可用状态
PHP_MSHUTDOWN(ccvita),//退出模块时,清理, 如内存释放
PHP_RINIT(ccvita), /* Replace with NULL if there's nothing to do at request start */请求初始化
PHP_RSHUTDOWN(ccvita), /* Replace with NULL if there's nothing to do at request end *//以清除程序运行时产生的符号表
PHP_MINFO(ccvita),
PHP_CCVITA_VERSION,
STANDARD_MODULE_PROPERTIES
};
/* }}} */
#ifdef COMPILE_DL_CCVITA
ZEND_GET_MODULE(ccvita)
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
* vim600: noet sw=4 ts=4 fdm=marker
* vim<600: noet sw=4 ts=4
*/