iliaa Thu Nov 17 16:05:30 2005 EDT
Modified files: (Branch: PHP_5_1)
/php-src NEWS
/php-src/ext/date php_date.c
/php-src/ext/date/tests bug33869.phpt bug34087.phpt bug34676.phpt
bug34771.phpt date_create-1.phpt
date_default_timezone_set-1.phpt
mktime-3.phpt strtotime.phpt
Log:
Moved date constants into the date class, they all class constants now.
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.2027.2.199&r2=1.2027.2.200&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.199 php-src/NEWS:1.2027.2.200
--- php-src/NEWS:1.2027.2.199 Thu Nov 17 16:00:28 2005
+++ php-src/NEWS Thu Nov 17 16:05:28 2005
@@ -1,6 +1,7 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17 Nov 2005, PHP 5.1 Release Candidate 6
+- Moved make ext/date constants be date class constants. (Ilia)
- Resolve Apache 2 regression with sub-request handling on non-linux systems.
(Ilia, Tony)
- Make zend_parse_params handle integers in a non-strict fashion, but emit an
http://cvs.php.net/diff.php/php-src/ext/date/php_date.c?r1=1.43.2.20&r2=1.43.2.21&ty=u
Index: php-src/ext/date/php_date.c
diff -u php-src/ext/date/php_date.c:1.43.2.20
php-src/ext/date/php_date.c:1.43.2.21
--- php-src/ext/date/php_date.c:1.43.2.20 Tue Nov 15 09:08:03 2005
+++ php-src/ext/date/php_date.c Thu Nov 17 16:05:30 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_date.c,v 1.43.2.20 2005/11/15 14:08:03 tony2001 Exp $ */
+/* $Id: php_date.c,v 1.43.2.21 2005/11/17 21:05:30 iliaa Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -74,8 +74,9 @@
{NULL, NULL, NULL}
};
-#ifdef EXPERIMENTAL_DATE_SUPPORT
+
function_entry date_funcs_date[] = {
+#ifdef EXPERIMENTAL_DATE_SUPPORT
ZEND_NAMED_FE(format, ZEND_FN(date_format), NULL)
ZEND_NAMED_FE(modify, ZEND_FN(date_modify), NULL)
ZEND_NAMED_FE(getTimezone, ZEND_FN(date_timezone_get), NULL)
@@ -84,25 +85,23 @@
ZEND_NAMED_FE(setTime, ZEND_FN(date_time_set), NULL)
ZEND_NAMED_FE(setDate, ZEND_FN(date_date_set), NULL)
ZEND_NAMED_FE(setISODate, ZEND_FN(date_isodate_set), NULL)
+#endif
{NULL, NULL, NULL}
};
function_entry date_funcs_timezone[] = {
+#ifdef EXPERIMENTAL_DATE_SUPPORT
ZEND_NAMED_FE(getName, ZEND_FN(timezone_name_get), NULL)
ZEND_NAMED_FE(getOffset, ZEND_FN(timezone_offset_get), NULL)
ZEND_NAMED_FE(getTransistions, ZEND_FN(timezone_transistions_get), NULL)
ZEND_MALIAS(timezone, listAbbreviations, abbreviations_list, NULL,
ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
ZEND_MALIAS(timezone, listIdentifiers, identifiers_list, NULL,
ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
+#endif
{NULL, NULL, NULL}
};
-static void date_register_classes(TSRMLS_D);
-# define DATE_REGISTER_CLASSES date_register_classes(TSRMLS_C)
-#else
-# define DATE_REGISTER_CLASSES /* */
-#endif
-
static char* guess_timezone(TSRMLS_D);
+static void date_register_classes(TSRMLS_D);
/* }}} */
ZEND_DECLARE_MODULE_GLOBALS(date)
@@ -117,7 +116,11 @@
PHP_INI_END()
/* }}} */
-#ifdef EXPERIMENTAL_DATE_SUPPORT
+zend_class_entry *date_ce_date, *date_ce_timezone;
+
+static zend_object_handlers date_object_handlers_date;
+static zend_object_handlers date_object_handlers_timezone;
+
typedef struct _php_date_obj php_date_obj;
typedef struct _php_timezone_obj php_timezone_obj;
@@ -131,11 +134,7 @@
timelib_tzinfo *tz;
};
-zend_class_entry *date_ce_date, *date_ce_timezone;
-
-static zend_object_handlers date_object_handlers_date;
-static zend_object_handlers date_object_handlers_timezone;
-
+#ifdef EXPERIMENTAL_DATE_SUPPORT
#define DATE_SET_CONTEXT \
zval *object; \
object = getThis(); \
@@ -154,12 +153,12 @@
} \
obj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC);
\
+#endif
-static zend_object_value date_object_new_date(zend_class_entry *class_type
TSRMLS_DC);
-static zend_object_value date_object_new_timezone(zend_class_entry *class_type
TSRMLS_DC);
static void date_object_free_storage_date(void *object TSRMLS_DC);
static void date_object_free_storage_timezone(void *object TSRMLS_DC);
-#endif
+static zend_object_value date_object_new_date(zend_class_entry *class_type
TSRMLS_DC);
+static zend_object_value date_object_new_timezone(zend_class_entry *class_type
TSRMLS_DC);
/* {{{ Module struct */
zend_module_entry date_module_entry = {
@@ -237,18 +236,7 @@
ZEND_INIT_MODULE_GLOBALS(date, php_date_init_globals, NULL);
REGISTER_INI_ENTRIES();
- DATE_REGISTER_CLASSES;
-
- REGISTER_STRING_CONSTANT("DATE_ATOM", DATE_FORMAT_ISO8601, CONST_CS
| CONST_PERSISTENT);
- REGISTER_STRING_CONSTANT("DATE_COOKIE", DATE_FORMAT_RFC1123, CONST_CS
| CONST_PERSISTENT);
- REGISTER_STRING_CONSTANT("DATE_ISO8601", DATE_FORMAT_ISO8601, CONST_CS
| CONST_PERSISTENT);
- REGISTER_STRING_CONSTANT("DATE_RFC822", DATE_FORMAT_RFC1123, CONST_CS
| CONST_PERSISTENT);
- REGISTER_STRING_CONSTANT("DATE_RFC850", DATE_FORMAT_RFC1036, CONST_CS
| CONST_PERSISTENT);
- REGISTER_STRING_CONSTANT("DATE_RFC1036", DATE_FORMAT_RFC1036, CONST_CS
| CONST_PERSISTENT);
- REGISTER_STRING_CONSTANT("DATE_RFC1123", DATE_FORMAT_RFC1123, CONST_CS
| CONST_PERSISTENT);
- REGISTER_STRING_CONSTANT("DATE_RFC2822", DATE_FORMAT_RFC2822, CONST_CS
| CONST_PERSISTENT);
- REGISTER_STRING_CONSTANT("DATE_RSS", DATE_FORMAT_RFC1123, CONST_CS
| CONST_PERSISTENT);
- REGISTER_STRING_CONSTANT("DATE_W3C", DATE_FORMAT_ISO8601, CONST_CS
| CONST_PERSISTENT);
+ date_register_classes(TSRMLS_C);
php_date_global_timezone_db = NULL;
php_date_global_timezone_db_enabled = 0;
@@ -1014,7 +1002,38 @@
}
/* }}} */
-#ifdef EXPERIMENTAL_DATE_SUPPORT
+static void date_register_classes(TSRMLS_D)
+{
+ zend_class_entry ce_date, ce_timezone;
+
+ INIT_CLASS_ENTRY(ce_date, "date", date_funcs_date);
+ ce_date.create_object = date_object_new_date;
+ date_ce_date = zend_register_internal_class_ex(&ce_date, NULL, NULL
TSRMLS_CC);
+ memcpy(&date_object_handlers_date, zend_get_std_object_handlers(),
sizeof(zend_object_handlers));
+ date_object_handlers_date.clone_obj = NULL;
+
+#define REGISTER_DATE_CLASS_CONST_STRING(const_name, value) \
+ zend_declare_class_constant_stringl(date_ce_date, const_name,
sizeof(const_name)-1, value, sizeof(value)-1 TSRMLS_CC);
+
+ REGISTER_DATE_CLASS_CONST_STRING("ATOM", DATE_FORMAT_ISO8601);
+ REGISTER_DATE_CLASS_CONST_STRING("COOKIE", DATE_FORMAT_RFC1123);
+ REGISTER_DATE_CLASS_CONST_STRING("ISO8601", DATE_FORMAT_ISO8601);
+ REGISTER_DATE_CLASS_CONST_STRING("RFC822", DATE_FORMAT_RFC1123);
+ REGISTER_DATE_CLASS_CONST_STRING("RFC850", DATE_FORMAT_RFC1036);
+ REGISTER_DATE_CLASS_CONST_STRING("RFC1036", DATE_FORMAT_RFC1036);
+ REGISTER_DATE_CLASS_CONST_STRING("RFC1123", DATE_FORMAT_RFC1123);
+ REGISTER_DATE_CLASS_CONST_STRING("RFC2822", DATE_FORMAT_RFC2822);
+ REGISTER_DATE_CLASS_CONST_STRING("RSS", DATE_FORMAT_RFC1123);
+ REGISTER_DATE_CLASS_CONST_STRING("W3C", DATE_FORMAT_ISO8601);
+
+
+ INIT_CLASS_ENTRY(ce_timezone, "timezone", date_funcs_timezone);
+ ce_timezone.create_object = date_object_new_timezone;
+ date_ce_timezone = zend_register_internal_class_ex(&ce_timezone, NULL,
NULL TSRMLS_CC);
+ memcpy(&date_object_handlers_timezone, zend_get_std_object_handlers(),
sizeof(zend_object_handlers));
+ date_object_handlers_timezone.clone_obj = NULL;
+}
+
static zend_object_value date_object_new_date(zend_class_entry *class_type
TSRMLS_DC)
{
php_date_obj *intern;
@@ -1061,28 +1080,10 @@
static void date_object_free_storage_timezone(void *object TSRMLS_DC)
{
- php_timezone_obj *intern = (php_timezone_obj *)object;
-
efree(object);
}
-static void date_register_classes(TSRMLS_D)
-{
- zend_class_entry ce_date, ce_timezone;
-
- INIT_CLASS_ENTRY(ce_date, "date", date_funcs_date);
- ce_date.create_object = date_object_new_date;
- date_ce_date = zend_register_internal_class_ex(&ce_date, NULL, NULL
TSRMLS_CC);
- memcpy(&date_object_handlers_date, zend_get_std_object_handlers(),
sizeof(zend_object_handlers));
- date_object_handlers_date.clone_obj = NULL;
-
- INIT_CLASS_ENTRY(ce_timezone, "timezone", date_funcs_timezone);
- ce_timezone.create_object = date_object_new_timezone;
- date_ce_timezone = zend_register_internal_class_ex(&ce_timezone, NULL,
NULL TSRMLS_CC);
- memcpy(&date_object_handlers_timezone, zend_get_std_object_handlers(),
sizeof(zend_object_handlers));
- date_object_handlers_timezone.clone_obj = NULL;
-}
-
+#ifdef EXPERIMENTAL_DATE_SUPPORT
/* Advanced Interface */
static zval * date_instanciate(zend_class_entry *pce, zval *object TSRMLS_DC)
{
http://cvs.php.net/diff.php/php-src/ext/date/tests/bug33869.phpt?r1=1.2&r2=1.2.2.1&ty=u
Index: php-src/ext/date/tests/bug33869.phpt
diff -u php-src/ext/date/tests/bug33869.phpt:1.2
php-src/ext/date/tests/bug33869.phpt:1.2.2.1
--- php-src/ext/date/tests/bug33869.phpt:1.2 Mon Aug 1 03:38:20 2005
+++ php-src/ext/date/tests/bug33869.phpt Thu Nov 17 16:05:30 2005
@@ -4,17 +4,17 @@
<?php
date_default_timezone_set("UTC");
$tm = strtotime("2005-01-01 01:01:01");
- echo date(DATE_ISO8601, strtotime('+5days', $tm));
+ echo date(date::ISO8601, strtotime('+5days', $tm));
echo "\n";
- echo date(DATE_ISO8601, strtotime('+1month', $tm));
+ echo date(date::ISO8601, strtotime('+1month', $tm));
echo "\n";
- echo date(DATE_ISO8601, strtotime('+1year', $tm));
+ echo date(date::ISO8601, strtotime('+1year', $tm));
echo "\n";
- echo date(DATE_ISO8601, strtotime('+5 days', $tm));
+ echo date(date::ISO8601, strtotime('+5 days', $tm));
echo "\n";
- echo date(DATE_ISO8601, strtotime('+1 month', $tm));
+ echo date(date::ISO8601, strtotime('+1 month', $tm));
echo "\n";
- echo date(DATE_ISO8601, strtotime('+1 year', $tm));
+ echo date(date::ISO8601, strtotime('+1 year', $tm));
echo "\n";
?>
--EXPECT--
http://cvs.php.net/diff.php/php-src/ext/date/tests/bug34087.phpt?r1=1.1.2.2&r2=1.1.2.3&ty=u
Index: php-src/ext/date/tests/bug34087.phpt
diff -u php-src/ext/date/tests/bug34087.phpt:1.1.2.2
php-src/ext/date/tests/bug34087.phpt:1.1.2.3
--- php-src/ext/date/tests/bug34087.phpt:1.1.2.2 Thu Aug 25 05:47:28 2005
+++ php-src/ext/date/tests/bug34087.phpt Thu Nov 17 16:05:30 2005
@@ -6,10 +6,10 @@
echo "Y/m/d: ", strtotime("2005/8/12"), "\n";
echo "Y-m-d: ", strtotime("2005-8-12"), "\n";
-echo date(DATE_ISO8601, strtotime("2005/1/2")), "\n";
-echo date(DATE_ISO8601, strtotime("2005/01/02")), "\n";
-echo date(DATE_ISO8601, strtotime("2005/01/2")), "\n";
-echo date(DATE_ISO8601, strtotime("2005/1/02")), "\n";
+echo date(date::ISO8601, strtotime("2005/1/2")), "\n";
+echo date(date::ISO8601, strtotime("2005/01/02")), "\n";
+echo date(date::ISO8601, strtotime("2005/01/2")), "\n";
+echo date(date::ISO8601, strtotime("2005/1/02")), "\n";
?>
--EXPECT--
Y/m/d: 1123804800
http://cvs.php.net/diff.php/php-src/ext/date/tests/bug34676.phpt?r1=1.1.2.2&r2=1.1.2.3&ty=u
Index: php-src/ext/date/tests/bug34676.phpt
diff -u php-src/ext/date/tests/bug34676.phpt:1.1.2.2
php-src/ext/date/tests/bug34676.phpt:1.1.2.3
--- php-src/ext/date/tests/bug34676.phpt:1.1.2.2 Sat Oct 8 10:31:17 2005
+++ php-src/ext/date/tests/bug34676.phpt Thu Nov 17 16:05:30 2005
@@ -10,7 +10,7 @@
foreach ($tests as $test) {
$t = strtotime("2005-12-22 ". $test);
- printf("%-10s => %s\n", $test, date(DATE_ISO8601, $t));
+ printf("%-10s => %s\n", $test, date(date::ISO8601, $t));
}
?>
http://cvs.php.net/diff.php/php-src/ext/date/tests/bug34771.phpt?r1=1.1.2.2&r2=1.1.2.3&ty=u
Index: php-src/ext/date/tests/bug34771.phpt
diff -u php-src/ext/date/tests/bug34771.phpt:1.1.2.2
php-src/ext/date/tests/bug34771.phpt:1.1.2.3
--- php-src/ext/date/tests/bug34771.phpt:1.1.2.2 Fri Oct 7 04:09:01 2005
+++ php-src/ext/date/tests/bug34771.phpt Thu Nov 17 16:05:30 2005
@@ -13,7 +13,7 @@
foreach ($tests as $test) {
$t = strtotime("2005-12-22 ". $test);
- printf("%-10s => %s\n", $test, date(DATE_ISO8601, $t));
+ printf("%-10s => %s\n", $test, date(date::ISO8601, $t));
}
?>
http://cvs.php.net/diff.php/php-src/ext/date/tests/date_create-1.phpt?r1=1.1&r2=1.1.2.1&ty=u
Index: php-src/ext/date/tests/date_create-1.phpt
diff -u php-src/ext/date/tests/date_create-1.phpt:1.1
php-src/ext/date/tests/date_create-1.phpt:1.1.2.1
--- php-src/ext/date/tests/date_create-1.phpt:1.1 Wed Jul 20 04:31:02 2005
+++ php-src/ext/date/tests/date_create-1.phpt Thu Nov 17 16:05:30 2005
@@ -28,7 +28,7 @@
$d[] = date_create("2005-07-14 22:30:41 America/Los_Angeles", $tz2);
foreach($d as $date) {
- echo $date->format(DATE_ISO8601), "\n";
+ echo $date->format(date::ISO8601), "\n";
}
?>
--EXPECT--
http://cvs.php.net/diff.php/php-src/ext/date/tests/date_default_timezone_set-1.phpt?r1=1.1.2.2&r2=1.1.2.3&ty=u
Index: php-src/ext/date/tests/date_default_timezone_set-1.phpt
diff -u php-src/ext/date/tests/date_default_timezone_set-1.phpt:1.1.2.2
php-src/ext/date/tests/date_default_timezone_set-1.phpt:1.1.2.3
--- php-src/ext/date/tests/date_default_timezone_set-1.phpt:1.1.2.2 Wed Oct
19 07:18:51 2005
+++ php-src/ext/date/tests/date_default_timezone_set-1.phpt Thu Nov 17
16:05:30 2005
@@ -12,10 +12,10 @@
$date4 = strtotime("2005-07-12 08:00:00");
echo date_default_timezone_get(), "\n";
- echo date(DATE_ISO8601, $date1), "\n";
- echo date(DATE_ISO8601, $date2), "\n";
- echo date(DATE_ISO8601, $date3), "\n";
- echo date(DATE_ISO8601, $date4), "\n";
+ echo date(date::ISO8601, $date1), "\n";
+ echo date(date::ISO8601, $date2), "\n";
+ echo date(date::ISO8601, $date3), "\n";
+ echo date(date::ISO8601, $date4), "\n";
?>
--EXPECTF--
Strict Standards: strtotime(): It is not safe to rely on the system's timezone
settings. Please use the date.timezone setting, the TZ environment variable or
the date_default_timezone_set() function. We selected 'Europe/London' for
'UTC/0.0/no DST' instead in %sdate_default_timezone_set-1.php on line 3
http://cvs.php.net/diff.php/php-src/ext/date/tests/mktime-3.phpt?r1=1.1&r2=1.1.2.1&ty=u
Index: php-src/ext/date/tests/mktime-3.phpt
diff -u php-src/ext/date/tests/mktime-3.phpt:1.1
php-src/ext/date/tests/mktime-3.phpt:1.1.2.1
--- php-src/ext/date/tests/mktime-3.phpt:1.1 Thu Jul 21 06:09:38 2005
+++ php-src/ext/date/tests/mktime-3.phpt Thu Nov 17 16:05:30 2005
@@ -16,7 +16,7 @@
if ($ret == FALSE) {
echo "out of range\n";
} else {
- echo date("F ".DATE_ISO8601, $ret), "\n";
+ echo date("F ".date::ISO8601, $ret), "\n";
}
}
echo "\n";
http://cvs.php.net/diff.php/php-src/ext/date/tests/strtotime.phpt?r1=1.1&r2=1.1.2.1&ty=u
Index: php-src/ext/date/tests/strtotime.phpt
diff -u php-src/ext/date/tests/strtotime.phpt:1.1
php-src/ext/date/tests/strtotime.phpt:1.1.2.1
--- php-src/ext/date/tests/strtotime.phpt:1.1 Wed Jul 20 04:31:02 2005
+++ php-src/ext/date/tests/strtotime.phpt Thu Nov 17 16:05:30 2005
@@ -8,7 +8,7 @@
$d[] = strtotime("2005-07-14 22:30:41 GMT");
foreach($d as $date) {
- echo date(DATE_ISO8601, $date), "\n";
+ echo date(date::ISO8601, $date), "\n";
}
?>
--EXPECT--
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php