Commit 39159c89 authored by Bo Yang's avatar Bo Yang

Accept DatetimeInterface in fromDatetime

parent 1a549d9a
......@@ -1123,21 +1123,16 @@ PHP_METHOD(Timestamp, fromDateTime) {
zval* datetime;
zval member;
if (zend_parse_parameters(
ZEND_NUM_ARGS() TSRMLS_CC, "z", &datetime) == FAILURE) {
return;
}
zend_class_entry* ce = Z_OBJCE_P(datetime);
PHP_PROTO_CE_DECLARE datetime_ce;
if (php_proto_zend_lookup_class("\\Datetime", 9, &datetime_ce) ==
FAILURE) {
PHP_PROTO_CE_DECLARE date_interface_ce;
if (php_proto_zend_lookup_class("\\DatetimeInterface", 18,
&date_interface_ce) == FAILURE) {
zend_error(E_ERROR, "Make sure date extension is enabled.");
return;
}
if (!instanceof_function(PHP_PROTO_CE_UNREF(datetime_ce), ce TSRMLS_CC)) {
zend_error(E_USER_ERROR, "Expect Datetime.");
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &datetime,
date_interface_ce) == FAILURE) {
zend_error(E_USER_ERROR, "Expect DatetimeInterface.");
return;
}
......
......@@ -182,8 +182,15 @@ zend_function_entry protobuf_functions[] = {
ZEND_FE_END
};
static const zend_module_dep protobuf_deps[] = {
ZEND_MOD_OPTIONAL("date")
ZEND_MOD_END
};
zend_module_entry protobuf_module_entry = {
STANDARD_MODULE_HEADER,
STANDARD_MODULE_HEADER_EX,
NULL,
protobuf_deps,
PHP_PROTOBUF_EXTNAME, // extension name
protobuf_functions, // function list
PHP_MINIT(protobuf), // process startup
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment