Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Initial skeleton made by the ext_skel script

  • Loading branch information...
commit 9f206a21412c1c049554b7253f92b860ce22b890 1 parent 6ad686c
@sugendran sugendran authored
View
1  CREDITS
@@ -0,0 +1 @@
+graphdat
View
0  EXPERIMENTAL
No changes.
View
63 config.m4
@@ -0,0 +1,63 @@
+dnl $Id$
+dnl config.m4 for extension graphdat
+
+dnl Comments in this file start with the string 'dnl'.
+dnl Remove where necessary. This file will not work
+dnl without editing.
+
+dnl If your extension references something external, use with:
+
+dnl PHP_ARG_WITH(graphdat, for graphdat support,
+dnl Make sure that the comment is aligned:
+dnl [ --with-graphdat Include graphdat support])
+
+dnl Otherwise use enable:
+
+dnl PHP_ARG_ENABLE(graphdat, whether to enable graphdat support,
+dnl Make sure that the comment is aligned:
+dnl [ --enable-graphdat Enable graphdat support])
+
+if test "$PHP_GRAPHDAT" != "no"; then
+ dnl Write more examples of tests here...
+
+ dnl # --with-graphdat -> check with-path
+ dnl SEARCH_PATH="/usr/local /usr" # you might want to change this
+ dnl SEARCH_FOR="/include/graphdat.h" # you most likely want to change this
+ dnl if test -r $PHP_GRAPHDAT/$SEARCH_FOR; then # path given as parameter
+ dnl GRAPHDAT_DIR=$PHP_GRAPHDAT
+ dnl else # search default path list
+ dnl AC_MSG_CHECKING([for graphdat files in default path])
+ dnl for i in $SEARCH_PATH ; do
+ dnl if test -r $i/$SEARCH_FOR; then
+ dnl GRAPHDAT_DIR=$i
+ dnl AC_MSG_RESULT(found in $i)
+ dnl fi
+ dnl done
+ dnl fi
+ dnl
+ dnl if test -z "$GRAPHDAT_DIR"; then
+ dnl AC_MSG_RESULT([not found])
+ dnl AC_MSG_ERROR([Please reinstall the graphdat distribution])
+ dnl fi
+
+ dnl # --with-graphdat -> add include path
+ dnl PHP_ADD_INCLUDE($GRAPHDAT_DIR/include)
+
+ dnl # --with-graphdat -> check for lib and symbol presence
+ dnl LIBNAME=graphdat # you may want to change this
+ dnl LIBSYMBOL=graphdat # you most likely want to change this
+
+ dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
+ dnl [
+ dnl PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $GRAPHDAT_DIR/lib, GRAPHDAT_SHARED_LIBADD)
+ dnl AC_DEFINE(HAVE_GRAPHDATLIB,1,[ ])
+ dnl ],[
+ dnl AC_MSG_ERROR([wrong graphdat lib version or lib not found])
+ dnl ],[
+ dnl -L$GRAPHDAT_DIR/lib -lm
+ dnl ])
+ dnl
+ dnl PHP_SUBST(GRAPHDAT_SHARED_LIBADD)
+
+ PHP_NEW_EXTENSION(graphdat, graphdat.c, $ext_shared)
+fi
View
13 config.w32
@@ -0,0 +1,13 @@
+// $Id$
+// vim:ft=javascript
+
+// If your extension references something external, use ARG_WITH
+// ARG_WITH("graphdat", "for graphdat support", "no");
+
+// Otherwise, use ARG_ENABLE
+// ARG_ENABLE("graphdat", "enable graphdat support", "no");
+
+if (PHP_GRAPHDAT != "no") {
+ EXTENSION("graphdat", "graphdat.c");
+}
+
View
182 graphdat.c
@@ -0,0 +1,182 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2012 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_graphdat.h"
+
+/* If you declare any globals in php_graphdat.h uncomment this:
+ZEND_DECLARE_MODULE_GLOBALS(graphdat)
+*/
+
+/* True global resources - no need for thread safety here */
+static int le_graphdat;
+
+/* {{{ graphdat_functions[]
+ *
+ * Every user visible function must have an entry in graphdat_functions[].
+ */
+const zend_function_entry graphdat_functions[] = {
+ PHP_FE(confirm_graphdat_compiled, NULL) /* For testing, remove later. */
+ PHP_FE_END /* Must be the last line in graphdat_functions[] */
+};
+/* }}} */
+
+/* {{{ graphdat_module_entry
+ */
+zend_module_entry graphdat_module_entry = {
+#if ZEND_MODULE_API_NO >= 20010901
+ STANDARD_MODULE_HEADER,
+#endif
+ "graphdat",
+ graphdat_functions,
+ PHP_MINIT(graphdat),
+ PHP_MSHUTDOWN(graphdat),
+ PHP_RINIT(graphdat), /* Replace with NULL if there's nothing to do at request start */
+ PHP_RSHUTDOWN(graphdat), /* Replace with NULL if there's nothing to do at request end */
+ PHP_MINFO(graphdat),
+#if ZEND_MODULE_API_NO >= 20010901
+ "0.1", /* Replace with version number for your extension */
+#endif
+ STANDARD_MODULE_PROPERTIES
+};
+/* }}} */
+
+#ifdef COMPILE_DL_GRAPHDAT
+ZEND_GET_MODULE(graphdat)
+#endif
+
+/* {{{ PHP_INI
+ */
+/* Remove comments and fill if you need to have entries in php.ini
+PHP_INI_BEGIN()
+ STD_PHP_INI_ENTRY("graphdat.global_value", "42", PHP_INI_ALL, OnUpdateLong, global_value, zend_graphdat_globals, graphdat_globals)
+ STD_PHP_INI_ENTRY("graphdat.global_string", "foobar", PHP_INI_ALL, OnUpdateString, global_string, zend_graphdat_globals, graphdat_globals)
+PHP_INI_END()
+*/
+/* }}} */
+
+/* {{{ php_graphdat_init_globals
+ */
+/* Uncomment this function if you have INI entries
+static void php_graphdat_init_globals(zend_graphdat_globals *graphdat_globals)
+{
+ graphdat_globals->global_value = 0;
+ graphdat_globals->global_string = NULL;
+}
+*/
+/* }}} */
+
+/* {{{ PHP_MINIT_FUNCTION
+ */
+PHP_MINIT_FUNCTION(graphdat)
+{
+ /* If you have INI entries, uncomment these lines
+ REGISTER_INI_ENTRIES();
+ */
+ return SUCCESS;
+}
+/* }}} */
+
+/* {{{ PHP_MSHUTDOWN_FUNCTION
+ */
+PHP_MSHUTDOWN_FUNCTION(graphdat)
+{
+ /* 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(graphdat)
+{
+ return SUCCESS;
+}
+/* }}} */
+
+/* Remove if there's nothing to do at request end */
+/* {{{ PHP_RSHUTDOWN_FUNCTION
+ */
+PHP_RSHUTDOWN_FUNCTION(graphdat)
+{
+ return SUCCESS;
+}
+/* }}} */
+
+/* {{{ PHP_MINFO_FUNCTION
+ */
+PHP_MINFO_FUNCTION(graphdat)
+{
+ php_info_print_table_start();
+ php_info_print_table_header(2, "graphdat 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 confirm_graphdat_compiled(string arg)
+ Return a string to confirm that the module is compiled in */
+PHP_FUNCTION(confirm_graphdat_compiled)
+{
+ char *arg = NULL;
+ int arg_len, len;
+ char *strg;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
+ return;
+ }
+
+ len = spprintf(&strg, 0, "Congratulations! You have successfully modified ext/%.78s/config.m4. Module %.78s is now compiled into PHP.", "graphdat", arg);
+ RETURN_STRINGL(strg, 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.
+*/
+
+
+/*
+ * 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
+ */
View
21 graphdat.php
@@ -0,0 +1,21 @@
+<?php
+$br = (php_sapi_name() == "cli")? "":"<br>";
+
+if(!extension_loaded('graphdat')) {
+ dl('graphdat.' . PHP_SHLIB_SUFFIX);
+}
+$module = 'graphdat';
+$functions = get_extension_funcs($module);
+echo "Functions available in the test extension:$br\n";
+foreach($functions as $func) {
+ echo $func."$br\n";
+}
+echo "$br\n";
+$function = 'confirm_' . $module . '_compiled';
+if (extension_loaded($module)) {
+ $str = $function($module);
+} else {
+ $str = "Module $module is not compiled into PHP";
+}
+echo "$str\n";
+?>
View
83 php_graphdat.h
@@ -0,0 +1,83 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2012 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$ */
+
+#ifndef PHP_GRAPHDAT_H
+#define PHP_GRAPHDAT_H
+
+extern zend_module_entry graphdat_module_entry;
+#define phpext_graphdat_ptr &graphdat_module_entry
+
+#ifdef PHP_WIN32
+# define PHP_GRAPHDAT_API __declspec(dllexport)
+#elif defined(__GNUC__) && __GNUC__ >= 4
+# define PHP_GRAPHDAT_API __attribute__ ((visibility("default")))
+#else
+# define PHP_GRAPHDAT_API
+#endif
+
+#ifdef ZTS
+#include "TSRM.h"
+#endif
+
+PHP_MINIT_FUNCTION(graphdat);
+PHP_MSHUTDOWN_FUNCTION(graphdat);
+PHP_RINIT_FUNCTION(graphdat);
+PHP_RSHUTDOWN_FUNCTION(graphdat);
+PHP_MINFO_FUNCTION(graphdat);
+
+PHP_FUNCTION(confirm_graphdat_compiled); /* For testing, remove later. */
+
+/*
+ Declare any global variables you may need between the BEGIN
+ and END macros here:
+
+ZEND_BEGIN_MODULE_GLOBALS(graphdat)
+ long global_value;
+ char *global_string;
+ZEND_END_MODULE_GLOBALS(graphdat)
+*/
+
+/* In every utility function you add that needs to use variables
+ in php_graphdat_globals, call TSRMLS_FETCH(); after declaring other
+ variables used by that function, or better yet, pass in TSRMLS_CC
+ after the last function argument and declare your utility function
+ with TSRMLS_DC after the last declared argument. Always refer to
+ the globals in your function as GRAPHDAT_G(variable). You are
+ encouraged to rename these macros something shorter, see
+ examples in any other php module directory.
+*/
+
+#ifdef ZTS
+#define GRAPHDAT_G(v) TSRMG(graphdat_globals_id, zend_graphdat_globals *, v)
+#else
+#define GRAPHDAT_G(v) (graphdat_globals.v)
+#endif
+
+#endif /* PHP_GRAPHDAT_H */
+
+
+/*
+ * 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
+ */
View
21 tests/001.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Check for graphdat presence
+--SKIPIF--
+<?php if (!extension_loaded("graphdat")) print "skip"; ?>
+--FILE--
+<?php
+echo "graphdat extension is available";
+/*
+ you can add regression tests for your extension here
+
+ the output of your test code has to be equal to the
+ text in the --EXPECT-- section below for the tests
+ to pass, differences between the output and the
+ expected text are interpreted as failure
+
+ see php5/README.TESTING for further information on
+ writing regression tests
+*/
+?>
+--EXPECT--
+graphdat extension is available

0 comments on commit 9f206a2

Please sign in to comment.
Something went wrong with that request. Please try again.