better checks for json support
[m6w6/ext-pq] / src / php_pq_module.c
index 12a6e4b110fec42f039b78531e5123a812eb92a9..86fc93e938310d3fd61568d5a85a9af53a5915e3 100644 (file)
 
 #include <libpq-fe.h>
 
-/*
-#include <Zend/zend_interfaces.h>
-#include <Zend/zend_exceptions.h>
-#include <ext/spl/spl_array.h>
-#include <ext/spl/spl_exceptions.h>
-#include <ext/raphf/php_raphf.h>
-
-#include <libpq-events.h>
-#include <libpq/libpq-fs.h>
-#include <fnmatch.h>
-*/
-
 #include "php_pq.h"
 #include "php_pq_misc.h"
 #include "php_pqcancel.h"
 #include "php_pqconn.h"
 #include "php_pqcopy.h"
+#include "php_pqcur.h"
 #include "php_pqexc.h"
 #include "php_pqlob.h"
 #include "php_pqres.h"
@@ -52,6 +41,7 @@
 
 static PHP_MINIT_FUNCTION(pq)
 {
+       PHP_MINIT_CALL(pq_misc);
        PHP_MINIT_CALL(pqexc);
 
        PHP_MINIT_CALL(pqconn);
@@ -61,6 +51,7 @@ static PHP_MINIT_FUNCTION(pq)
        PHP_MINIT_CALL(pqres);
        PHP_MINIT_CALL(pqstm);
        PHP_MINIT_CALL(pqtxn);
+       PHP_MINIT_CALL(pqcur);
 
        PHP_MINIT_CALL(pqcopy);
        PHP_MINIT_CALL(pqlob);
@@ -68,9 +59,26 @@ static PHP_MINIT_FUNCTION(pq)
        return php_persistent_handle_provide(ZEND_STRL("pq\\Connection"), php_pqconn_get_resource_factory_ops(), NULL, NULL TSRMLS_CC);
 }
 
+#define PHP_MSHUT_CALL(i) do { \
+       if (SUCCESS != PHP_MSHUTDOWN(i)(type, module_number TSRMLS_CC)) { \
+               return FAILURE; \
+       } \
+} while(0)
+
 static PHP_MSHUTDOWN_FUNCTION(pq)
 {
        php_persistent_handle_cleanup(ZEND_STRL("pq\\Connection"), NULL, 0 TSRMLS_CC);
+
+       PHP_MSHUT_CALL(pqlob);
+       PHP_MSHUT_CALL(pqcopy);
+       PHP_MSHUT_CALL(pqcur);
+       PHP_MSHUT_CALL(pqtxn);
+       PHP_MSHUT_CALL(pqstm);
+       PHP_MSHUT_CALL(pqres);
+       PHP_MSHUT_CALL(pqtypes);
+       PHP_MSHUT_CALL(pqcancel);
+       PHP_MSHUT_CALL(pqconn);
+
        return SUCCESS;
 }
 
@@ -83,7 +91,7 @@ static PHP_MINFO_FUNCTION(pq)
 
        php_info_print_table_start();
        php_info_print_table_header(2, "PQ Support", "enabled");
-       php_info_print_table_row(2, "Extension Version", PHP_PQ_EXT_VERSION);
+       php_info_print_table_row(2, "Extension Version", PHP_PQ_VERSION);
        php_info_print_table_end();
 
        php_info_print_table_start();
@@ -96,13 +104,14 @@ static PHP_MINFO_FUNCTION(pq)
        php_info_print_table_end();
 }
 
-const zend_function_entry pq_functions[] = {
+static const zend_function_entry pq_functions[] = {
        {0}
 };
 
 static zend_module_dep pq_module_deps[] = {
        ZEND_MOD_REQUIRED("raphf")
        ZEND_MOD_REQUIRED("spl")
+       ZEND_MOD_OPTIONAL("json")
        ZEND_MOD_END
 };
 
@@ -117,7 +126,7 @@ zend_module_entry pq_module_entry = {
        NULL,/*PHP_RINIT(pq),*/
        NULL,/*PHP_RSHUTDOWN(pq),*/
        PHP_MINFO(pq),
-       PHP_PQ_EXT_VERSION,
+       PHP_PQ_VERSION,
        STANDARD_MODULE_PROPERTIES
 };