This source file includes following definitions.
- dateformat_register_constants
- PHP_FUNCTION
- PHP_FUNCTION
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #ifdef HAVE_CONFIG_H
17 #include "config.h"
18 #endif
19
20 #include <unicode/udat.h>
21
22 #include "php_intl.h"
23 #include "dateformat_class.h"
24 #include "dateformat.h"
25
26
27
28
29
30 void dateformat_register_constants( INIT_FUNC_ARGS )
31 {
32 if( IntlDateFormatter_ce_ptr == NULL) {
33 zend_error(E_ERROR, "DateFormat class not defined");
34 return;
35 }
36
37 #define DATEFORMATTER_EXPOSE_CONST(x) REGISTER_LONG_CONSTANT(#x, x, CONST_CS)
38 #define DATEFORMATTER_EXPOSE_CLASS_CONST(x) zend_declare_class_constant_long( IntlDateFormatter_ce_ptr, ZEND_STRS( #x ) - 1, UDAT_##x TSRMLS_CC );
39 #define DATEFORMATTER_EXPOSE_CUSTOM_CLASS_CONST(name, value) zend_declare_class_constant_long( IntlDateFormatter_ce_ptr, ZEND_STRS( name ) - 1, value TSRMLS_CC );
40
41 #define DATEFORMATTER_EXPOSE_UCAL_CLASS_CONST(x) zend_declare_class_constant_long( IntlDateFormatter_ce_ptr, ZEND_STRS( #x ) - 1, UCAL_##x TSRMLS_CC );
42
43
44 DATEFORMATTER_EXPOSE_CLASS_CONST( FULL );
45 DATEFORMATTER_EXPOSE_CLASS_CONST( LONG );
46 DATEFORMATTER_EXPOSE_CLASS_CONST( MEDIUM );
47 DATEFORMATTER_EXPOSE_CLASS_CONST( SHORT );
48 DATEFORMATTER_EXPOSE_CLASS_CONST( NONE );
49
50
51
52
53
54
55
56
57 DATEFORMATTER_EXPOSE_UCAL_CLASS_CONST( GREGORIAN );
58 DATEFORMATTER_EXPOSE_UCAL_CLASS_CONST( TRADITIONAL );
59
60 #undef DATEFORMATTER_EXPOSE_UCAL_CLASS_CONST
61 #undef DATEFORMATTER_EXPOSE_CUSTOM_CLASS_CONST
62 #undef DATEFORMATTER_EXPOSE_CLASS_CONST
63 #undef DATEFORMATTER_EXPOSE_CONST
64 }
65
66
67
68
69
70
71
72 PHP_FUNCTION( datefmt_get_error_code )
73 {
74 DATE_FORMAT_METHOD_INIT_VARS;
75
76
77 if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
78 &object, IntlDateFormatter_ce_ptr ) == FAILURE )
79 {
80 intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
81 "datefmt_get_error_code: unable to parse input params", 0 TSRMLS_CC );
82 RETURN_FALSE;
83 }
84
85 dfo = (IntlDateFormatter_object *) zend_object_store_get_object( object TSRMLS_CC );
86
87
88 RETURN_LONG( INTL_DATA_ERROR_CODE(dfo) );
89 }
90
91
92
93
94
95
96
97 PHP_FUNCTION( datefmt_get_error_message )
98 {
99 char* message = NULL;
100 DATE_FORMAT_METHOD_INIT_VARS;
101
102
103 if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
104 &object, IntlDateFormatter_ce_ptr ) == FAILURE )
105 {
106 intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
107 "datefmt_get_error_message: unable to parse input params", 0 TSRMLS_CC );
108
109 RETURN_FALSE;
110 }
111
112 dfo = (IntlDateFormatter_object *) zend_object_store_get_object( object TSRMLS_CC );
113
114
115 message = intl_error_get_message( INTL_DATA_ERROR_P(dfo) TSRMLS_CC );
116 RETURN_STRING( message, 0);
117 }
118