arpad Mon, 29 Aug 2011 21:29:26 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=315745
Log: Expose session status via new function, session_status (Req #52982) Bug: https://bugs.php.net/52982 (Assigned) Expose php_session_active to userland via new function (patch included) Changed paths: U php/php-src/branches/PHP_5_4/NEWS U php/php-src/branches/PHP_5_4/ext/session/session.c A php/php-src/branches/PHP_5_4/ext/session/tests/session_status.phpt A php/php-src/branches/PHP_5_4/ext/session/tests/session_status_disabled.phpt U php/php-src/trunk/ext/session/session.c A php/php-src/trunk/ext/session/tests/session_status.phpt A php/php-src/trunk/ext/session/tests/session_status_disabled.phpt Modified: php/php-src/branches/PHP_5_4/NEWS =================================================================== --- php/php-src/branches/PHP_5_4/NEWS 2011-08-29 21:20:41 UTC (rev 315744) +++ php/php-src/branches/PHP_5_4/NEWS 2011-08-29 21:29:26 UTC (rev 315745) @@ -296,6 +296,7 @@ . Added support for storing upload progress feedback in session data. (Arnaud) . Changed session.entropy_file to default to /dev/urandom or /dev/arandom if either is present at compile time. (Rasmus) + . Expose session status via new function, session_status (Req #52982) (arpad) - Improved SPL extension: . Added RegexIterator::getRegex() method. (Joshua Thijssen) Modified: php/php-src/branches/PHP_5_4/ext/session/session.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/session/session.c 2011-08-29 21:20:41 UTC (rev 315744) +++ php/php-src/branches/PHP_5_4/ext/session/session.c 2011-08-29 21:29:26 UTC (rev 315745) @@ -1830,6 +1830,18 @@ } /* }}} */ +/* {{{ proto int session_status(void) + Returns the current session status */ +static PHP_FUNCTION(session_status) +{ + if (zend_parse_parameters_none() == FAILURE) { + return; + } + + RETURN_LONG(PS(session_status)); +} +/* }}} */ + /* {{{ arginfo */ ZEND_BEGIN_ARG_INFO_EX(arginfo_session_name, 0, 0, 0) ZEND_ARG_INFO(0, name) @@ -1903,6 +1915,7 @@ PHP_FE(session_set_cookie_params, arginfo_session_set_cookie_params) PHP_FE(session_get_cookie_params, arginfo_session_void) PHP_FE(session_write_close, arginfo_session_void) + PHP_FE(session_status, arginfo_session_void) PHP_FALIAS(session_commit, session_write_close, arginfo_session_void) PHP_FE_END }; @@ -2004,6 +2017,11 @@ #endif php_session_rfc1867_orig_callback = php_rfc1867_callback; php_rfc1867_callback = php_session_rfc1867_callback; + + REGISTER_LONG_CONSTANT("PHP_SESSION_DISABLED", php_session_disabled, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PHP_SESSION_NONE", php_session_none, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PHP_SESSION_ACTIVE", php_session_active, CONST_CS | CONST_PERSISTENT); + return SUCCESS; } /* }}} */ Added: php/php-src/branches/PHP_5_4/ext/session/tests/session_status.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/session/tests/session_status.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/ext/session/tests/session_status.phpt 2011-08-29 21:29:26 UTC (rev 315745) @@ -0,0 +1,24 @@ +--TEST-- +Test session_status() function : active, none +--SKIPIF-- +<?php include('skipif.inc'); ?> +--FILE-- +<?php + +ob_start(); + +echo "*** Testing session_status() : active, none\n"; + +var_dump(PHP_SESSION_NONE != PHP_SESSION_ACTIVE); +var_dump(session_status() == PHP_SESSION_NONE); + +session_start(); + +var_dump(session_status() == PHP_SESSION_ACTIVE); + +?> +--EXPECTF-- +*** Testing session_status() : active, none +bool(true) +bool(true) +bool(true) Added: php/php-src/branches/PHP_5_4/ext/session/tests/session_status_disabled.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/session/tests/session_status_disabled.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/ext/session/tests/session_status_disabled.phpt 2011-08-29 21:29:26 UTC (rev 315745) @@ -0,0 +1,17 @@ +--TEST-- +Test session_status() function : disabled +--SKIPIF-- +<?php include('skipif.inc'); ?> +--INI-- +session.save_handler=non-existant +--FILE-- +<?php + +echo "*** Testing session_status() : disabled\n"; + +var_dump(session_status() == PHP_SESSION_DISABLED); + +?> +--EXPECTF-- +*** Testing session_status() : disabled +bool(true) Modified: php/php-src/trunk/ext/session/session.c =================================================================== --- php/php-src/trunk/ext/session/session.c 2011-08-29 21:20:41 UTC (rev 315744) +++ php/php-src/trunk/ext/session/session.c 2011-08-29 21:29:26 UTC (rev 315745) @@ -1830,6 +1830,18 @@ } /* }}} */ +/* {{{ proto int session_status(void) + Returns the current session status */ +static PHP_FUNCTION(session_status) +{ + if (zend_parse_parameters_none() == FAILURE) { + return; + } + + RETURN_LONG(PS(session_status)); +} +/* }}} */ + /* {{{ arginfo */ ZEND_BEGIN_ARG_INFO_EX(arginfo_session_name, 0, 0, 0) ZEND_ARG_INFO(0, name) @@ -1903,6 +1915,7 @@ PHP_FE(session_set_cookie_params, arginfo_session_set_cookie_params) PHP_FE(session_get_cookie_params, arginfo_session_void) PHP_FE(session_write_close, arginfo_session_void) + PHP_FE(session_status, arginfo_session_void) PHP_FALIAS(session_commit, session_write_close, arginfo_session_void) PHP_FE_END }; @@ -2004,6 +2017,11 @@ #endif php_session_rfc1867_orig_callback = php_rfc1867_callback; php_rfc1867_callback = php_session_rfc1867_callback; + + REGISTER_LONG_CONSTANT("PHP_SESSION_DISABLED", php_session_disabled, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PHP_SESSION_NONE", php_session_none, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PHP_SESSION_ACTIVE", php_session_active, CONST_CS | CONST_PERSISTENT); + return SUCCESS; } /* }}} */ Added: php/php-src/trunk/ext/session/tests/session_status.phpt =================================================================== --- php/php-src/trunk/ext/session/tests/session_status.phpt (rev 0) +++ php/php-src/trunk/ext/session/tests/session_status.phpt 2011-08-29 21:29:26 UTC (rev 315745) @@ -0,0 +1,24 @@ +--TEST-- +Test session_status() function : active, none +--SKIPIF-- +<?php include('skipif.inc'); ?> +--FILE-- +<?php + +ob_start(); + +echo "*** Testing session_status() : active, none\n"; + +var_dump(PHP_SESSION_NONE != PHP_SESSION_ACTIVE); +var_dump(session_status() == PHP_SESSION_NONE); + +session_start(); + +var_dump(session_status() == PHP_SESSION_ACTIVE); + +?> +--EXPECTF-- +*** Testing session_status() : active, none +bool(true) +bool(true) +bool(true) Added: php/php-src/trunk/ext/session/tests/session_status_disabled.phpt =================================================================== --- php/php-src/trunk/ext/session/tests/session_status_disabled.phpt (rev 0) +++ php/php-src/trunk/ext/session/tests/session_status_disabled.phpt 2011-08-29 21:29:26 UTC (rev 315745) @@ -0,0 +1,17 @@ +--TEST-- +Test session_status() function : disabled +--SKIPIF-- +<?php include('skipif.inc'); ?> +--INI-- +session.save_handler=non-existant +--FILE-- +<?php + +echo "*** Testing session_status() : disabled\n"; + +var_dump(session_status() == PHP_SESSION_DISABLED); + +?> +--EXPECTF-- +*** Testing session_status() : disabled +bool(true)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php