Modified: pecl/yaf/trunk/configs/ini.c =================================================================== --- pecl/yaf/trunk/configs/ini.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/configs/ini.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -160,7 +160,7 @@ HashTable *ret = NULL; ALLOC_HASHTABLE(ret); - zend_hash_init(ret, 128, NULL, NULL, FALSE); + zend_hash_init(ret, 128, NULL, NULL, 0); for(zend_hash_internal_pointer_reset(ht); zend_hash_has_more_elements(ht) == SUCCESS; @@ -238,7 +238,7 @@ array_init(section); } - zend_hash_merge(Z_ARRVAL_P(section), Z_ARRVAL_PP(ppzval), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *), FALSE); + zend_hash_merge(Z_ARRVAL_P(section), Z_ARRVAL_PP(ppzval), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *), 0); if ((buf = strstr(key, ":"))) { char *parent_section = NULL; @@ -260,7 +260,7 @@ parent = yaf_config_ini_parse_section(ht, parent_section, parent_len TSRMLS_CC); zend_hash_set_pointer(ht, &position); if (parent) { - zend_hash_merge(Z_ARRVAL_P(parent), Z_ARRVAL_P(section), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *), TRUE); + zend_hash_merge(Z_ARRVAL_P(parent), Z_ARRVAL_P(section), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *), 1); section = parent; parent = NULL; } @@ -299,14 +299,14 @@ zval *params[2] = {0}; MAKE_STD_ZVAL(process_section); - ZVAL_TRUE(process_section); + ZVAL_1(process_section); params[0] = filename; params[1] = process_section; - ZVAL_STRING(&function, "parse_ini_file", FALSE); + ZVAL_STRING(&function, "parse_ini_file", 0); MAKE_STD_ZVAL(ini_entries); - ZVAL_FALSE(ini_entries); + ZVAL_0(ini_entries); /** * cause config need section parse * so it's difficult to call zend_parse_ini_file directly @@ -336,7 +336,7 @@ efree(ini_entries); } else { int len = 0; - int section = FALSE; + int section = 0; long idx = 0; char *key = NULL; char *tmp = NULL; @@ -372,7 +372,7 @@ } if (Z_TYPE_PP(ppzv) == IS_ARRAY) { - section = TRUE; + section = 1; zend_hash_get_pointer(ht, &pot); sec = yaf_config_ini_parse_section(ht, key, len TSRMLS_CC); zend_hash_set_pointer(ht, &pot); Modified: pecl/yaf/trunk/configs/simple.c =================================================================== --- pecl/yaf/trunk/configs/simple.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/configs/simple.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -33,7 +33,7 @@ } yaf_update_property(instance, YAF_CONFIG_PROPERT_NAME, values); if (readonly) { - convert_to_boolean(readonly); + convert_to_int(readonly); yaf_update_property(instance, YAF_CONFIG_PROPERT_NAME_READONLY, readonly); } return instance; Modified: pecl/yaf/trunk/php_yaf.h =================================================================== --- pecl/yaf/trunk/php_yaf.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/php_yaf.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -44,33 +44,11 @@ #define YAF_RINIT_FUNCTION(modle) ZEND_RINIT_FUNCTION(yaf_##module) #define YAF_STARTUP(module) ZEND_MODULE_STARTUP_N(yaf_##module)(INIT_FUNC_ARGS_PASSTHRU) #define YAF_SHUTDOWN_FUNCTION(module) ZEND_MINIT_FUNCTION(yaf_##module) -#define YAF_SHUTDOWN(module) ZEND_MODULE_SHUTDOWN_N(yaf_##module)(INIT_FUNC_ARGS_PASSTHRU) +#define YAF_SHUTDOWN(module) ZEND_MODULE_SHUTDOWN_N(yaf_##module)(INIT_FUNC_ARGS_PASSTHRU) -#define YAF_VERSION "1.0.0 $Id$" -#define YAF_EXTRACT_FUNC_NAME "extract" +#define YAF_VERSION "1.0.0 $Id$" -#define YAF_ROUTER_DEFAULT_ACTION "index" -#define YAF_ROUTER_DEFAULT_CONTROLLER "Index" -#define YAF_ROUTER_DEFAULT_MODULE "Index" -#define YAF_DEFAULT_EXT "php" -#define YAF_DEFAULT_VIEW_EXT "phtml" -#define YAF_DEFAULT_BOOTSTRAP "Bootstrap" -#define YAF_DEFAULT_BOOTSTRAP_LOWER "bootstrap" -#define YAF_DEFAULT_BOOTSTRAP_LEN 10 -#define YAF_BOOTSTRAP_INITFUNC_PREFIX "_init" -#define YAF_DEFAULT_LIBRARY_EXT YAF_DEFAULT_CONTROLLER_EXT - -#define YAF_LIBRARY_DIRECTORY_NAME "library" -#define YAF_CONTROLLER_DIRECTORY_NAME "controller" -#define YAF_PLUGIN_DIRECTORY_NAME "plugins" -#define YAF_MODULE_DIRECTORY_NAME "modules" -#define YAF_VIEW_DIRECTORY_NAME "views" -#define YAF_MODEL_DIRECTORY_NAME "models" - -#define YAF_ACTION_EXECUTOR_NAME "execute" - #if ((PHP_MAJOR_VERSION == 5) && (PHP_MINOR_VERSION > 2)) || (PHP_MAJOR_VERSION > 5) -#define PHP5_3P #define YAF_HAVE_NAMESPACE #else #define Z_ADDREF_P ZVAL_ADDREF @@ -80,32 +58,20 @@ #define yaf_application_t zval #define yaf_view_t zval -#define yaf_controller_t zval +#define yaf_controller_t zval #define yaf_request_t zval -#define yaf_router_t zval +#define yaf_router_t zval #define yaf_route_t zval -#define yaf_dispatcher_t zval -#define yaf_action_t zval -#define yaf_loader_t zval +#define yaf_dispatcher_t zval +#define yaf_action_t zval +#define yaf_loader_t zval #define yaf_response_t zval -#define yaf_config_t zval +#define yaf_config_t zval #define yaf_registry_t zval -#define yaf_plugin_t zval +#define yaf_plugin_t zval #define yaf_session_t zval #define yaf_exception_t zval -#ifndef boolean -#define boolean uint -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - extern PHPAPI int php_register_info_logo(char *logo_string, const char *mimetype, const unsigned char *data, int size); extern PHPAPI void php_var_dump(zval **struc, int level TSRMLS_DC); extern PHPAPI void php_debug_zval_dump(zval **struc, int level TSRMLS_DC); @@ -121,43 +87,6 @@ #define YAF_PPSTRL(z) \ Z_STRVAL_PP(z), Z_STRLEN_PP(z) -#ifdef YAF_DEBUG - -#if defined(PHP_WIN32) && (_MSC_VER > 1400) -#define YAF_DEBUG(format,...) \ -php_printf(format, __VA_ARGS__) -#elif defined(__GNUC__) -#define YAF_DEBUG(format,args...) \ -php_printf(format, ##args) -#else -#define YAF_DEBUG(format,...) -#endif - -#else -#define YAF_DEBUG(format,...) -#endif - -#define yaf_read_property(obj, property) \ - zend_read_property(Z_OBJCE_P(obj), obj, ZEND_STRL(property), 0 TSRMLS_CC) - -#define yaf_update_property(obj, property, value) \ - do { \ - zend_update_property(Z_OBJCE_P(obj), obj, ZEND_STRL(property), value TSRMLS_CC); \ - } while(0) - -#define yaf_update_property_stringl(obj, property, value, len) \ - do { \ - zend_update_property_stringl(Z_OBJCE_P(obj), obj, ZEND_STRL(property), value, len TSRMLS_CC); \ - } while(0) - -#define yaf_update_static_property(ce, property, value) \ - do {\ - zend_update_static_property(ce, ZEND_STRL(property), value TSRMLS_CC); \ - } while(0) - -#define yaf_read_static_property(ce, property) \ - zend_read_static_property(ce, ZEND_STRL(property), 0 TSRMLS_CC) - ZEND_BEGIN_MODULE_GLOBALS(yaf) char *ext; char *base_uri; @@ -198,30 +127,9 @@ PHP_RSHUTDOWN_FUNCTION(yaf); PHP_MINFO_FUNCTION(yaf); -ZEND_RSRC_DTOR_FUNC(php_yaf_rsc_dtor); - extern ZEND_DECLARE_MODULE_GLOBALS(yaf); -#ifdef HAVE_SPL -extern PHPAPI zend_class_entry * spl_ce_Countable; #endif - -#ifdef YAF_DEBUG_PROF -static inline long long yaf_debug_getus() { - struct timeval tv; - long long t; - gettimeofday(&tv,NULL); - t = tv.tv_sec * 1000000 + tv.tv_usec; - return t; -} -#define YAF_PROF_START(t) long long _yaf_prof_##t = yaf_debug_getus() -#define YAF_PROF_END(s, t) php_printf("%s:%uus\n", s, yaf_debug_getus() - _yaf_prof_##t) -#else -#define YAF_PROF_START(t) -#define YAF_PROF_END(s, t) -#endif - -#endif /* * Local variables: * tab-width: 4 Modified: pecl/yaf/trunk/requests/http.c =================================================================== --- pecl/yaf/trunk/requests/http.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/requests/http.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -21,10 +21,8 @@ /** {{{ yaf_request_t * yaf_request_http_instance(yaf_request_t *this_ptr, char *request_uri, char *base_uri TSRMLS_DC) */ yaf_request_t * yaf_request_http_instance(yaf_request_t *this_ptr, char *request_uri, char *base_uri TSRMLS_DC) { - yaf_request_t *instance = NULL; - zval *method = NULL; - zval *params = NULL; - zval *settled_uri = NULL; + zval *methods, *params, *settled_uri; + yaf_request_t *instance; if (this_ptr) { instance = this_ptr; @@ -35,23 +33,21 @@ MAKE_STD_ZVAL(method); if (SG(request_info).request_method) { - ZVAL_STRING(method, (char *)SG(request_info).request_method, TRUE); + ZVAL_STRING(method, (char *)SG(request_info).request_method, 1); } else if (strncasecmp(sapi_module.name, "cli", 3)) { - ZVAL_STRING(method, "Unknow", TRUE); + ZVAL_STRING(method, "Unknow", 1); } else { - ZVAL_STRING(method, "Cli", TRUE); + ZVAL_STRING(method, "Cli", 1); } - yaf_update_property(instance, YAF_REQUEST_PROPERTY_NAME_METHOD, method); + zend_update_property(yaf_request_http_ce, instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_METHOD), method TSRMLS_CC); if (request_uri) { MAKE_STD_ZVAL(settled_uri); ZVAL_STRING(settled_uri, request_uri, 1); } else { - - zval *uri = NULL; + zval *uri; do { - #ifdef PHP_WIN32 /* check this first so IIS will catch */ uri = yaf_request_query(YAF_GLOBAL_VARS_SERVER, YAF_STRL("HTTP_X_REWRITE_URL") TSRMLS_CC); @@ -89,7 +85,7 @@ if (url_info && url_info->path) { MAKE_STD_ZVAL(settled_uri); - ZVAL_STRING(settled_uri, url_info->path, TRUE); + ZVAL_STRING(settled_uri, url_info->path, 1); } php_url_free(url_info); @@ -97,7 +93,7 @@ char *pos = NULL; if ((pos = strstr(Z_STRVAL_P(uri), "?"))) { MAKE_STD_ZVAL(settled_uri); - ZVAL_STRINGL(settled_uri, Z_STRVAL_P(uri), pos - Z_STRVAL_P(uri), TRUE); + ZVAL_STRINGL(settled_uri, Z_STRVAL_P(uri), pos - Z_STRVAL_P(uri), 1); } else { settled_uri = uri; } @@ -119,14 +115,14 @@ } if (settled_uri) { - yaf_update_property(instance, YAF_REQUEST_PROPERTY_NAME_URI, settled_uri); - yaf_request_set_base_uri(instance, base_uri, Z_STRVAL_P(settled_uri) TSRMLS_CC); + zend_update_property(yaf_request_http_ce, instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_URI), settled_uri TSRMLS_CC); + yaf_request_set_base_uri(yaf_request_http_ce, instance, base_uri, Z_STRVAL_P(settled_uri) TSRMLS_CC); } MAKE_STD_ZVAL(params); array_init(params); - yaf_update_property(instance, YAF_REQUEST_PROPERTY_NAME_PARAMS, params); + zend_update_property(yaf_request_http_ce, instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), params TSRMLS_CC); return instance; } @@ -225,7 +221,7 @@ yaf_request_t *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|ss", &request_uri, &rlen, &base_uri, &blen) == FAILURE) { - WRONG_PARAM_COUNT; + return; } (void)yaf_request_http_instance(self, request_uri, base_uri TSRMLS_CC); Modified: pecl/yaf/trunk/requests/simple.c =================================================================== --- pecl/yaf/trunk/requests/simple.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/requests/simple.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -15,12 +15,12 @@ $Id$ */ -static zend_class_entry * yaf_request_simple_ce; +static zend_class_entry *yaf_request_simple_ce; /** {{{ yaf_request_t * yaf_request_simple_instance(yaf_request_t *this_ptr, zval *module, zval *controller, zval *action, zval *method, zval *params TSRMLS_DC) */ yaf_request_t * yaf_request_simple_instance(yaf_request_t *this_ptr, zval *module, zval *controller, zval *action, zval *method, zval *params TSRMLS_DC) { - yaf_request_t *instance = NULL; + yaf_request_t *instance; if (!method) { MAKE_STD_ZVAL(method); @@ -42,40 +42,38 @@ object_init_ex(instance, yaf_request_simple_ce); } - yaf_update_property(instance, YAF_REQUEST_PROPERTY_NAME_METHOD, method); + zend_update_property(yaf_request_simple_ce, instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_METHOD), method TSRMLS_CC); if (module || controller || action) { - if (!module - || Z_TYPE_P(module) != IS_STRING) { - zend_update_property_string(Z_OBJCE_P(instance), instance, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), - YAF_G(default_module) TSRMLS_CC); + if (!module || Z_TYPE_P(module) != IS_STRING) { + zend_update_property_string(yaf_request_simple_ce, instance, + ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), YAF_G(default_module) TSRMLS_CC); } else { - yaf_update_property(instance, YAF_REQUEST_PROPERTY_NAME_MODULE, module); + zend_update_property(yaf_request_simple_ce, instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), module TSRMLS_CC); } - if (!controller - || Z_TYPE_P(controller) != IS_STRING) { - zend_update_property_string(Z_OBJCE_P(instance), instance, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), - YAF_G(default_controller) TSRMLS_CC); + if (!controller || Z_TYPE_P(controller) != IS_STRING) { + zend_update_property_string(yaf_request_simple_ce, instance, + ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), YAF_G(default_controller) TSRMLS_CC); } else { - yaf_update_property(instance, YAF_REQUEST_PROPERTY_NAME_CONTROLLER, controller); + zend_update_property_string(yaf_request_simple_ce, instance, + ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), controller TSRMLS_CC); } - if (!action - || Z_TYPE_P(action) != IS_STRING) { - zend_update_property_string(Z_OBJCE_P(instance), instance, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), - YAF_G(default_action) TSRMLS_CC); + if (!action || Z_TYPE_P(action) != IS_STRING) { + zend_update_property_string(yaf_request_simple_ce, instance, + ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), YAF_G(default_action) TSRMLS_CC); } else { - yaf_update_property(instance, YAF_REQUEST_PROPERTY_NAME_ACTION, action); + zend_update_property_string(yaf_request_simple_ce, instance, + ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), action TSRMLS_CC); } - zend_update_property_bool(yaf_request_simple_ce, instance, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_ROUTED), TRUE TSRMLS_CC); + zend_update_property_bool(yaf_request_simple_ce, instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ROUTED), 1 TSRMLS_CC); } else { - zval *argv = NULL; - char *query = NULL; - zval **ppzval = NULL; - argv = yaf_request_query(YAF_GLOBAL_VARS_SERVER, YAF_STRL("argv") TSRMLS_CC); + zval *argv, **ppzval; + char *query = NULL; + argv = yaf_request_query(YAF_GLOBAL_VARS_SERVER, ZEND_STRL("argv") TSRMLS_CC); if (IS_ARRAY == Z_TYPE_P(argv)) { for(zend_hash_internal_pointer_reset(Z_ARRVAL_P(argv)); zend_hash_has_more_elements(Z_ARRVAL_P(argv)) == SUCCESS; @@ -96,21 +94,20 @@ } if (query) { - zend_update_property_string(Z_OBJCE_P(instance), instance, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_URI), query TSRMLS_CC); + zend_update_property_string(Z_OBJCE_P(instance), instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_URI), query TSRMLS_CC); } else { - zend_update_property_string(Z_OBJCE_P(instance), instance, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_URI), "" TSRMLS_CC); + zend_update_property_string(Z_OBJCE_P(instance), instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_URI), "" TSRMLS_CC); } } - if (!params - || IS_ARRAY != Z_TYPE_P(params)) { + if (!params || IS_ARRAY != Z_TYPE_P(params)) { MAKE_STD_ZVAL(params); array_init(params); } else { Z_ADDREF_P(params); } - yaf_update_property(instance, YAF_REQUEST_PROPERTY_NAME_PARAMS, params); + zend_update_property(yaf_request_simple_ce, instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), params TSRMLS_CC); return instance; } @@ -127,11 +124,11 @@ zval *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|zzzzz", &method, &module, &controller, &action, ¶ms) == FAILURE) { - WRONG_PARAM_COUNT; + return; } else { if ((params && IS_ARRAY != Z_TYPE_P(params))) { yaf_trigger_error(YAF_ERR_TYPE_ERROR, - "%s::__construct expects the params is an array", yaf_request_simple_ce->name); + "Expects the params is an array", yaf_request_simple_ce->name); RETURN_FALSE; } @@ -168,7 +165,7 @@ /** {{{ proto public Yaf_Request_Simple::isXmlHttpRequest() */ PHP_METHOD(yaf_request_simple, isXmlHttpRequest) { - zval * header = yaf_request_query(YAF_GLOBAL_VARS_SERVER, YAF_STRL("X-Requested-With") TSRMLS_CC); + zval * header = yaf_request_query(YAF_GLOBAL_VARS_SERVER, ZEND_STRL("X-Requested-With") TSRMLS_CC); if (Z_TYPE_P(header) == IS_STRING && strncasecmp("XMLHttpRequest", Z_STRVAL_P(header), Z_STRLEN_P(header)) == 0) { RETURN_TRUE; @@ -253,8 +250,8 @@ yaf_request_simple_ce = zend_register_internal_class_ex(&ce, yaf_request_ce, NULL TSRMLS_CC); yaf_request_simple_ce->ce_flags |= ZEND_ACC_FINAL_CLASS; - zend_declare_class_constant_string(yaf_request_simple_ce, YAF_STRL("SCHEME_HTTP"), "http" TSRMLS_CC); - zend_declare_class_constant_string(yaf_request_simple_ce, YAF_STRL("SCHEME_HTTPS"), "https" TSRMLS_CC); + zend_declare_class_constant_string(yaf_request_simple_ce, ZEND_STRL("SCHEME_HTTP"), "http" TSRMLS_CC); + zend_declare_class_constant_string(yaf_request_simple_ce, ZEND_STRL("SCHEME_HTTPS"), "https" TSRMLS_CC); return SUCCESS; } Modified: pecl/yaf/trunk/routes/map.c =================================================================== --- pecl/yaf/trunk/routes/map.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/routes/map.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -20,9 +20,9 @@ #define YAF_ROUTE_MAP_VAR_NAME_DELIMETER "_delimeter" #define YAF_ROUTE_MAP_VAR_NAME_CTL_PREFER "_ctl_router" -/** {{{ boolean yaf_route_map_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) +/** {{{ int yaf_route_map_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) */ -boolean yaf_route_map_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) { +int yaf_route_map_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) { zval *ctl_prefer = NULL; zval *delimer = NULL; zval *zuri = NULL; @@ -97,7 +97,7 @@ efree(req_uri); - return TRUE; + return 1; } /* }}} */ @@ -114,7 +114,7 @@ } /* }}} */ -/** {{{ proto public Yaf_Route_Simple::__construct(boolean $controller_prefer=FALSE, string $delimer = '#!') +/** {{{ proto public Yaf_Route_Simple::__construct(int $controller_prefer=0, string $delimer = '#!') */ PHP_METHOD(yaf_route_map, __construct) { long controller_prefer = 0; @@ -128,7 +128,7 @@ if (controller_prefer) { zend_update_property_bool(yaf_route_map_ce, getThis(), - YAF_STRL(YAF_ROUTE_MAP_VAR_NAME_CTL_PREFER), TRUE TSRMLS_CC); + YAF_STRL(YAF_ROUTE_MAP_VAR_NAME_CTL_PREFER), 1 TSRMLS_CC); } if (delim && delim_len) { @@ -158,7 +158,7 @@ yaf_route_map_ce->ce_flags |= ZEND_ACC_FINAL_CLASS; - zend_declare_property_bool(yaf_route_map_ce, YAF_STRL(YAF_ROUTE_MAP_VAR_NAME_CTL_PREFER), FALSE, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_bool(yaf_route_map_ce, YAF_STRL(YAF_ROUTE_MAP_VAR_NAME_CTL_PREFER), 0, ZEND_ACC_PROTECTED TSRMLS_CC); zend_declare_property_null(yaf_route_map_ce, YAF_STRL(YAF_ROUTE_MAP_VAR_NAME_DELIMETER), ZEND_ACC_PROTECTED TSRMLS_CC); return SUCCESS; Modified: pecl/yaf/trunk/routes/regex.c =================================================================== --- pecl/yaf/trunk/routes/regex.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/routes/regex.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -53,7 +53,7 @@ pcre_cache_entry *pce_regexp = NULL; if (!len) { - return FALSE; + return 0; } match = yaf_read_property(route, YAF_ROUTE_PROPETY_NAME_MATCH); @@ -116,9 +116,9 @@ } /* }}} */ -/** {{{ boolean yaf_route_regex_route(yaf_route_t *router, yaf_request_t *request TSRMLS_DC) +/** {{{ int yaf_route_regex_route(yaf_route_t *router, yaf_request_t *request TSRMLS_DC) */ -boolean yaf_route_regex_route(yaf_route_t *router, yaf_request_t *request TSRMLS_DC) { +int yaf_route_regex_route(yaf_route_t *router, yaf_request_t *request TSRMLS_DC) { char *request_uri = NULL; zval *args = NULL; zval *base_uri = NULL; @@ -136,7 +136,7 @@ } if (!(args = yaf_route_regex_match(router, request_uri, strlen(request_uri) TSRMLS_CC))) { - return FALSE; + return 0; } else { zval **module = NULL; zval **controller = NULL; @@ -159,7 +159,7 @@ (void)yaf_request_set_params_multi(request, args TSRMLS_CC); } - return TRUE; + return 1; } /* }}} */ @@ -171,7 +171,7 @@ route = getThis(); - RETVAL_FALSE; + RETVAL_0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &request) == FAILURE) { WRONG_PARAM_COUNT; } Modified: pecl/yaf/trunk/routes/rewrite.c =================================================================== --- pecl/yaf/trunk/routes/rewrite.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/routes/rewrite.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -56,7 +56,7 @@ pcre_cache_entry *pce_regexp = NULL; if (!len) { - return FALSE; + return 0; } match = yaf_read_property(router, YAF_ROUTE_PROPETY_NAME_MATCH); @@ -156,9 +156,9 @@ } /* }}} */ -/** {{{ boolean yaf_route_rewrite_route(yaf_route_t *router, yaf_request_t *request TSRMLS_DC) +/** {{{ int yaf_route_rewrite_route(yaf_route_t *router, yaf_request_t *request TSRMLS_DC) */ -boolean yaf_route_rewrite_route(yaf_route_t *router, yaf_request_t *request TSRMLS_DC) { +int yaf_route_rewrite_route(yaf_route_t *router, yaf_request_t *request TSRMLS_DC) { char *request_uri = NULL; zval *args = NULL; zval *base_uri = NULL; @@ -176,7 +176,7 @@ } if (!(args = yaf_route_rewrite_match(router, request_uri, strlen(request_uri) TSRMLS_CC))) { - return FALSE; + return 0; } else { zval **module = NULL; zval **controller = NULL; @@ -197,7 +197,7 @@ } (void)yaf_request_set_params_multi(request, args TSRMLS_CC); - return TRUE; + return 1; } } @@ -211,7 +211,7 @@ route = getThis(); - RETVAL_FALSE; + RETVAL_0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &request) == FAILURE) { WRONG_PARAM_COUNT; } Modified: pecl/yaf/trunk/routes/simple.c =================================================================== --- pecl/yaf/trunk/routes/simple.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/routes/simple.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -12,29 +12,28 @@ +----------------------------------------------------------------------+ | Author: Xinchen Hui | +----------------------------------------------------------------------+ - $Id$ - */ +*/ + +/* $Id$ */ -zend_class_entry * yaf_route_simple_ce; +zend_class_entry *yaf_route_simple_ce; -#define YAF_ROUTE_SIMPLE_VAR_NAME_MODULE "module" +#define YAF_ROUTE_SIMPLE_VAR_NAME_MODULE "module" #define YAF_ROUTE_SIMPLE_VAR_NAME_CONTROLLER "controller" -#define YAF_ROUTE_SIMPLE_VAR_NAME_ACTION "action" +#define YAF_ROUTE_SIMPLE_VAR_NAME_ACTION "action" -/** {{{ boolean yaf_route_simple_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) +/** {{{ int yaf_route_simple_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) */ -boolean yaf_route_simple_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) { - zval *module = NULL; - zval *controller = NULL; - zval *action = NULL; +int yaf_route_simple_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) { + zval *module, *controller, *action; + zval *nmodule, *ncontroller, *naction; + zend_class_entry *request_ce; - zval *nmodule = NULL; - zval *ncontroller= NULL; - zval *naction = NULL; + request_ce = Z_OBJCE_P(request); - nmodule = yaf_read_property(route, YAF_ROUTE_SIMPLE_VAR_NAME_MODULE); - ncontroller = yaf_read_property(route, YAF_ROUTE_SIMPLE_VAR_NAME_CONTROLLER); - naction = yaf_read_property(route, YAF_ROUTE_SIMPLE_VAR_NAME_ACTION); + nmodule = zend_read_property(yaf_route_simple_ce, route, ZEND_STRL(YAF_ROUTE_SIMPLE_VAR_NAME_MODULE), 0 TSRMLS_CC); + ncontroller = zend_read_property(yaf_route_simple_ce, route, ZEND_STRL(YAF_ROUTE_SIMPLE_VAR_NAME_CONTROLLER), 0 TSRMLS_CC); + naction = zend_read_property(yaf_route_simple_ce, route, ZEND_STRL(YAF_ROUTE_SIMPLE_VAR_NAME_ACTION), 0 TSRMLS_CC); /* if there is no expect parameter in supervars, then null will be return */ module = yaf_request_query(YAF_GLOBAL_VARS_GET, Z_STRVAL_P(nmodule), Z_STRLEN_P(nmodule) TSRMLS_CC); @@ -42,21 +41,21 @@ action = yaf_request_query(YAF_GLOBAL_VARS_GET, Z_STRVAL_P(naction), Z_STRLEN_P(naction) TSRMLS_CC); if (ZVAL_IS_NULL(module) && ZVAL_IS_NULL(controller) && ZVAL_IS_NULL(action)) { - return FALSE; + return 0; } - yaf_update_property(request, YAF_ROUTE_SIMPLE_VAR_NAME_MODULE, module); - yaf_update_property(request, YAF_ROUTE_SIMPLE_VAR_NAME_CONTROLLER, controller); - yaf_update_property(request, YAF_ROUTE_SIMPLE_VAR_NAME_ACTION, action); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), module TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), controller TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), action TSRMLS_CC); - return TRUE; + return 1; } /* }}} */ /** {{{ yaf_route_t * yaf_route_simple_instance(yaf_route_t *this_ptr, zval *module, zval *controller, zval *action TSRMLS_DC) */ yaf_route_t * yaf_route_simple_instance(yaf_route_t *this_ptr, zval *module, zval *controller, zval *action TSRMLS_DC) { - yaf_route_t *instance = NULL; + yaf_route_t *instance; if (this_ptr) { instance = this_ptr; @@ -65,9 +64,9 @@ object_init_ex(instance, yaf_route_simple_ce); } - yaf_update_property(instance, YAF_ROUTE_SIMPLE_VAR_NAME_MODULE, module); - yaf_update_property(instance, YAF_ROUTE_SIMPLE_VAR_NAME_CONTROLLER, controller); - yaf_update_property(instance, YAF_ROUTE_SIMPLE_VAR_NAME_ACTION, action); + zend_update_property(yaf_route_simple_ce, instance, ZEND_STRL(YAF_ROUTE_SIMPLE_VAR_NAME_MODULE), module TSRMLS_CC); + zend_update_property(yaf_route_simple_ce, instance, ZEND_STRL(YAF_ROUTE_SIMPLE_VAR_NAME_CONTROLLER), controller TSRMLS_CC); + zend_update_property(yaf_route_simple_ce, instance, ZEND_STRL(YAF_ROUTE_SIMPLE_VAR_NAME_ACTION), action TSRMLS_CC); return instance; } @@ -76,10 +75,10 @@ /** {{{ proto public Yaf_Route_Simple::route(Yaf_Request $req) */ PHP_METHOD(yaf_route_simple, route) { - yaf_request_t *request = NULL; + yaf_request_t *request; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &request) == FAILURE) { - WRONG_PARAM_COUNT; + return; } else { RETURN_BOOL(yaf_route_simple_route(getThis(), request TSRMLS_CC)); } @@ -89,24 +88,19 @@ /** {{{ proto public Yaf_Route_Simple::__construct(string $module, string $controller, string $action) */ PHP_METHOD(yaf_route_simple, __construct) { - zval *module = NULL; - zval *controller = NULL; - zval *action = NULL; + zval *module, *controller, *action; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zzz", &module, &controller, &action) == FAILURE) { - WRONG_PARAM_COUNT; + return; } if (IS_STRING != Z_TYPE_P(module) || IS_STRING != Z_TYPE_P(controller) || IS_STRING != Z_TYPE_P(action)) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s::__construct expects 3 string paramsters", yaf_route_simple_ce->name); + yaf_trigger_error(YAF_ERR_TYPE_ERROR TSRMLS_CC, "Expect 3 string paramsters", yaf_route_simple_ce->name); RETURN_FALSE; } else { - yaf_router_t *self = getThis(); - yaf_update_property(self, YAF_ROUTE_SIMPLE_VAR_NAME_MODULE, module); - yaf_update_property(self, YAF_ROUTE_SIMPLE_VAR_NAME_CONTROLLER, controller); - yaf_update_property(self, YAF_ROUTE_SIMPLE_VAR_NAME_ACTION, action); + (void)yaf_route_simple_instance(getThis(), module, controller, action TSRMLS_CC); } } /* }}} */ Modified: pecl/yaf/trunk/routes/static.c =================================================================== --- pecl/yaf/trunk/routes/static.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/routes/static.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -17,21 +17,18 @@ zend_class_entry * yaf_route_static_ce; -/** {{{ boolean yaf_route_static_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) +/** {{{ int yaf_route_static_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) */ -boolean yaf_route_static_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) { - zval *zuri = NULL; - zval *base_uri = NULL; - zval *params = NULL; - char *req_uri = NULL; - char *module = NULL; - char *controller = NULL; - char *action = NULL; - char *rest = NULL; +int yaf_route_static_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) { + zval *zuri, *base_uri, *params; + char *req_uri, *module, *controller, *action, *rest; + zend_class_entry *request_ce; - zuri = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_URI); - base_uri = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_BASE); + request_ce = Z_OBJCE_P(request); + zuri = zend_read_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_URI), 0 TSRMLS_CC); + base_uri = zend_read_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), 0 TSRMLS_CC); + if (base_uri && IS_STRING == Z_TYPE_P(base_uri) && strstr(Z_STRVAL_P(zuri), Z_STRVAL_P(base_uri)) == Z_STRVAL_P(zuri)) { req_uri = estrdup(Z_STRVAL_P(zuri) + Z_STRLEN_P(base_uri)); @@ -127,16 +124,16 @@ efree(req_uri); if (module != NULL) { - zend_update_property_string(Z_OBJCE_P(request), request, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), module TSRMLS_CC); + zend_update_property_string(request_ce, request, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), module TSRMLS_CC); efree(module); } if (controller != NULL) { - zend_update_property_string(Z_OBJCE_P(request), request, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), controller TSRMLS_CC); + zend_update_property_string(request_ce, request, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), controller TSRMLS_CC); efree(controller); } if (action != NULL) { - zend_update_property_string(Z_OBJCE_P(request), request, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), action TSRMLS_CC); + zend_update_property_string(request_ce, request, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), action TSRMLS_CC); efree(action); } @@ -146,17 +143,17 @@ efree(rest); } - return TRUE; + return 1; } /* }}} */ /** {{{ proto public Yaf_Router_Classical::route(Yaf_Request $req) */ PHP_METHOD(yaf_route_static, route) { - yaf_request_t *request = NULL; + yaf_request_t *request; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &request) == FAILURE) { - WRONG_PARAM_COUNT; + return; } else { RETURN_BOOL(yaf_route_static_route(getThis(), request TSRMLS_CC)); } Modified: pecl/yaf/trunk/routes/supervar.c =================================================================== --- pecl/yaf/trunk/routes/supervar.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/routes/supervar.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -19,9 +19,9 @@ zend_class_entry * yaf_route_supervar_ce; -/** {{{ boolean yaf_route_supervar_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) +/** {{{ int yaf_route_supervar_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) */ -boolean yaf_route_supervar_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) { +int yaf_route_supervar_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) { zval *varname = NULL; zval *zuri = NULL; zval *params = NULL; @@ -36,7 +36,7 @@ zuri = yaf_request_query(YAF_GLOBAL_VARS_GET, Z_STRVAL_P(varname), Z_STRLEN_P(varname) TSRMLS_CC); if (!zuri || ZVAL_IS_NULL(zuri)) { - return FALSE; + return 0; } req_uri = estrndup(Z_STRVAL_P(zuri), Z_STRLEN_P(zuri)); @@ -147,7 +147,7 @@ efree(rest); } - return TRUE; + return 1; } /* }}} */ Modified: pecl/yaf/trunk/views/simple.c =================================================================== --- pecl/yaf/trunk/views/simple.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/views/simple.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -143,9 +143,9 @@ } /* }}} */ -/** {{{ static boolean yaf_view_simple_extract(zval *tpl_vars, zval *vars TSRMLS_DC) +/** {{{ static int yaf_view_simple_extract(zval *tpl_vars, zval *vars TSRMLS_DC) */ -static boolean yaf_view_simple_extract(zval *tpl_vars, zval *vars TSRMLS_DC) { +static int yaf_view_simple_extract(zval *tpl_vars, zval *vars TSRMLS_DC) { zval **entry = NULL; char *var_name = NULL; long num_key = 0; @@ -155,7 +155,7 @@ #if ((PHP_MAJOR_VERSION == 5) && (PHP_MINOR_VERSION > 2)) || (PHP_MAJOR_VERSION > 5) if (!EG(active_symbol_table)) { /*zend_rebuild_symbol_table(TSRMLS_C);*/ - return TRUE; + return 1; } #endif @@ -179,7 +179,7 @@ if (yaf_view_simple_valid_var_name(var_name, var_name_len - 1)) { ZEND_SET_SYMBOL_WITH_LENGTH(EG(active_symbol_table), var_name, var_name_len, - *entry, Z_REFCOUNT_P(*entry) + 1, FALSE /**PZVAL_IS_REF(*entry)*/); + *entry, Z_REFCOUNT_P(*entry) + 1, 0 /**PZVAL_IS_REF(*entry)*/); } } } @@ -203,12 +203,12 @@ if (yaf_view_simple_valid_var_name(var_name, var_name_len - 1)) { ZEND_SET_SYMBOL_WITH_LENGTH(EG(active_symbol_table), var_name, var_name_len, - *entry, Z_REFCOUNT_P(*entry) + 1, FALSE /**PZVAL_IS_REF(*entry)*/); + *entry, Z_REFCOUNT_P(*entry) + 1, 0 /**PZVAL_IS_REF(*entry)*/); } } } - return TRUE; + return 1; } /* }}} */ @@ -239,9 +239,9 @@ } /* }}} */ -/** {{{ boolean yaf_view_simple_render(yaf_view_t *view, zval *tpl, zval * vars, zval *ret TSRMLS_DC) +/** {{{ int yaf_view_simple_render(yaf_view_t *view, zval *tpl, zval * vars, zval *ret TSRMLS_DC) */ -boolean yaf_view_simple_render(yaf_view_t *view, zval *tpl, zval * vars, zval *ret TSRMLS_DC) { +int yaf_view_simple_render(yaf_view_t *view, zval *tpl, zval * vars, zval *ret TSRMLS_DC) { zval *tpl_vars = NULL; char *script = NULL; int len = 0; @@ -268,7 +268,7 @@ if (IS_ABSOLUTE_PATH(Z_STRVAL_P(tpl), Z_STRLEN_P(tpl))) { script = Z_STRVAL_P(tpl); len = Z_STRLEN_P(tpl); - if (yaf_loader_compose(script, len + 1, FALSE TSRMLS_CC) == FALSE) { + if (yaf_loader_compose(script, len + 1, 0 TSRMLS_CC) == 0) { YAF_RESTORE_OUTPUT_BUFFER(buffer); if (calling_symbol_table) { zend_hash_destroy(EG(active_symbol_table)); @@ -277,7 +277,7 @@ } yaf_trigger_error(YAF_ERR_NOTFOUND_VIEW, "could not find view script %s", script); - return FALSE; + return 0; } } else { zval *tpl_dir = yaf_read_property(view, YAF_VIEW_PROPERTY_NAME_TPLDIR); @@ -294,12 +294,12 @@ yaf_trigger_error(YAF_ERR_NOTFOUND_VIEW, "could not determine the view script path, you should call %s::setScriptPath to specific it", yaf_view_simple_ce->name); - return FALSE; + return 0; } len = spprintf(&script, 0, "%s%c%s", Z_STRVAL_P(tpl_dir), DEFAULT_SLASH, Z_STRVAL_P(tpl)); - if (yaf_loader_compose(script, len + 1, FALSE TSRMLS_CC) == FALSE) { + if (yaf_loader_compose(script, len + 1, 0 TSRMLS_CC) == 0) { YAF_RESTORE_OUTPUT_BUFFER(buffer); if (calling_symbol_table) { @@ -310,7 +310,7 @@ yaf_trigger_error(YAF_ERR_NOTFOUND_VIEW, "could not find view script %s" , script); efree(script); - return FALSE; + return 0; } efree(script); } @@ -322,18 +322,18 @@ } if (buffer->len) { - ZVAL_STRINGL(ret, buffer->buffer, buffer->len, TRUE); + ZVAL_STRINGL(ret, buffer->buffer, buffer->len, 1); } YAF_RESTORE_OUTPUT_BUFFER(buffer); - return TRUE; + return 1; } /* }}} */ -/** {{{ boolean yaf_view_simple_display(yaf_view_t *view, zval *tpl, zval * vars, zval *ret TSRMLS_DC) +/** {{{ int yaf_view_simple_display(yaf_view_t *view, zval *tpl, zval * vars, zval *ret TSRMLS_DC) */ -boolean yaf_view_simple_display(yaf_view_t *view, zval *tpl, zval *vars, zval *ret TSRMLS_DC) { +int yaf_view_simple_display(yaf_view_t *view, zval *tpl, zval *vars, zval *ret TSRMLS_DC) { zval *tpl_vars = NULL; char *script = NULL; int len = 0; @@ -360,7 +360,7 @@ if (IS_ABSOLUTE_PATH(Z_STRVAL_P(tpl), Z_STRLEN_P(tpl))) { script = Z_STRVAL_P(tpl); len = Z_STRLEN_P(tpl); - if (yaf_loader_compose(script, len + 1, FALSE TSRMLS_CC) == FALSE) { + if (yaf_loader_compose(script, len + 1, 0 TSRMLS_CC) == 0) { yaf_trigger_error(YAF_ERR_NOTFOUND_VIEW, "could not find view script %s" , script); EG(scope) = old_scope; if (calling_symbol_table) { @@ -368,7 +368,7 @@ FREE_HASHTABLE(EG(active_symbol_table)); EG(active_symbol_table) = calling_symbol_table; } - return FALSE; + return 0; } } else { zval *tpl_dir = yaf_read_property(view, YAF_VIEW_PROPERTY_NAME_TPLDIR); @@ -381,11 +381,11 @@ FREE_HASHTABLE(EG(active_symbol_table)); EG(active_symbol_table) = calling_symbol_table; } - return FALSE; + return 0; } len = spprintf(&script, 0, "%s%c%s", Z_STRVAL_P(tpl_dir), DEFAULT_SLASH, Z_STRVAL_P(tpl)); - if (yaf_loader_compose(script, len + 1, FALSE TSRMLS_CC) == FALSE) { + if (yaf_loader_compose(script, len + 1, 0 TSRMLS_CC) == 0) { yaf_trigger_error(YAF_ERR_NOTFOUND_VIEW, "could not find view script %s" , script); efree(script); EG(scope) = old_scope; @@ -394,7 +394,7 @@ FREE_HASHTABLE(EG(active_symbol_table)); EG(active_symbol_table) = calling_symbol_table; } - return FALSE; + return 0; } efree(script); } @@ -406,7 +406,7 @@ EG(active_symbol_table) = calling_symbol_table; } - return TRUE; + return 1; } /* }}} */ Modified: pecl/yaf/trunk/yaf.c =================================================================== --- pecl/yaf/trunk/yaf.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -46,8 +46,6 @@ ZEND_DECLARE_MODULE_GLOBALS(yaf); -static int le_yaf; - /* {{{ yaf_functions[] */ zend_function_entry yaf_functions[] = { @@ -135,8 +133,6 @@ } #endif - le_yaf = zend_register_list_destructors_ex(NULL, php_yaf_rsc_dtor, "Yaf Resource Destructor", module_number); - /* startup components */ YAF_STARTUP(application); YAF_STARTUP(bootstrap); @@ -166,7 +162,7 @@ if (YAF_G(configs)) { zend_hash_destroy(YAF_G(configs)); - pefree(YAF_G(configs), TRUE); + pefree(YAF_G(configs), 1); } return SUCCESS; @@ -177,10 +173,10 @@ */ PHP_RINIT_FUNCTION(yaf) { - YAF_G(running) = FALSE; - YAF_G(in_exception) = FALSE; - YAF_G(throw_exception) = TRUE; - YAF_G(catch_exception) = FALSE; + YAF_G(running) = 0; + YAF_G(in_exception) = 0; + YAF_G(throw_exception) = 1; + YAF_G(catch_exception) = 0; YAF_G(directory) = NULL; YAF_G(bootstrap) = NULL; YAF_G(library_directory) = NULL; @@ -226,12 +222,6 @@ } /* }}} */ -/** {{{ ZEND_RSRC_DTOR_FUNC -*/ -ZEND_RSRC_DTOR_FUNC(php_yaf_rsc_dtor) { -} -/* }}} */ - /** {{{ DL support */ #ifdef COMPILE_DL_YAF Modified: pecl/yaf/trunk/yaf_action.c =================================================================== --- pecl/yaf/trunk/yaf_action.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_action.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -12,8 +12,9 @@ +----------------------------------------------------------------------+ | Author: Xinchen Hui | +----------------------------------------------------------------------+ - $Id$ - */ +*/ + +/* $Id$ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -32,12 +33,17 @@ #include "yaf_controller.h" #include "yaf_action.h" -zend_class_entry * yaf_action_ce; +zend_class_entry *yaf_action_ce; +/** {{{ ARG_INFO + */ + +/* }}} */ + /** {{{ proto public Yaf_Action_Abstract::getController(void) */ PHP_METHOD(yaf_action, getController) { - yaf_controller_t *controller = yaf_read_property(getThis(), YAF_ACTION_PROPERTY_NAME_CTRL); + yaf_controller_t *controller = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_ACTION_PROPERTY_NAME_CTRL), 0 TSRMLS_CC); RETURN_ZVAL(controller, 1, 0); } /* }}} */ Modified: pecl/yaf/trunk/yaf_action.h =================================================================== --- pecl/yaf/trunk/yaf_action.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_action.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -18,6 +18,7 @@ #ifndef YAF_ACTION_H #define YAF_ACTION_H +#define YAF_ACTION_EXECUTOR_NAME "execute" #define YAF_ACTION_PROPERTY_NAME_CTRL "_controller" extern zend_class_entry * yaf_action_ce; Modified: pecl/yaf/trunk/yaf_application.c =================================================================== --- pecl/yaf/trunk/yaf_application.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_application.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -12,9 +12,10 @@ +----------------------------------------------------------------------+ | Author: Xinchen Hui | +----------------------------------------------------------------------+ - $Id$ - */ +*/ +/* $Id$ */ + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -30,6 +31,7 @@ #include "yaf_namespace.h" #include "yaf_application.h" #include "yaf_dispatcher.h" +#include "yaf_router.h" #include "yaf_config.h" #include "yaf_loader.h" #include "yaf_request.h" @@ -38,33 +40,105 @@ zend_class_entry * yaf_application_ce; +/** {{{ ARG_INFO + * */ +static +ZEND_BEGIN_ARG_INFO_EX(yaf_application_construct_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, config) + ZEND_ARG_INFO(0, envrion) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_application_app_arginfo, 0, 0, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_application_execute_arginfo, 0, 0, 2) + ZEND_ARG_INFO(0, entry) + ZEND_ARG_INFO(0, ...) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_application_getconfig_arginfo, 0, 0, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_application_getmodule_arginfo, 0, 0, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_application_getdispatch_arginfo, 0, 0, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_application_bootstrap_arginfo, 0, 0, 0) + ZEND_ARG_INFO(0, bootstrap) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_application_environ_arginfo, 0, 0, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_application_run_arginfo, 0, 0, 0) +ZEND_END_ARG_INFO() + +/* }}} */ + +/** {{{ int yaf_application_is_module_name(char *name, int len TSRMLS_DC) +*/ +int yaf_application_is_module_name(char *name, int len TSRMLS_DC) { + zval *modules, **ppzval; + HashTable *ht; + yaf_application_t *app; + + app = zend_read_static_property(yaf_application_ce, ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_APP), 0 TSRMLS_CC); + if (!app || Z_TYPE_P(app) != IS_OBJECT) { + return 0; + } + + modules = zend_read_property(yaf_application_ce, app, ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_MODULES), 0 TSRMLS_CC); + if (!modules || Z_TYPE_P(modules) != IS_ARRAY) { + return 0; + } + + ht = Z_ARRVAL_P(modules); + zend_hash_internal_pointer_reset(ht); + while (zend_hash_get_current_data(ht, (void **)&ppzval) == SUCCESS) { + if (Z_TYPE_PP(ppzval) == IS_STRING + && strncasecmp(Z_STRVAL_PP(ppzval), name, len) == 0) { + return 1; + } + zend_hash_move_forward(ht); + } + return 0; +} +/* }}} */ + /** {{{ static int yaf_application_parse_option(zval *options TSRMLS_DC) */ static int yaf_application_parse_option(zval *options TSRMLS_DC) { - zval **ppzval = NULL; - zval **ppsval = NULL; - zval *app = NULL; - HashTable *conf = NULL; + HashTable *conf; + zval **ppzval, **ppsval, *app; conf = HASH_OF(options); - if (zend_hash_find(conf, YAF_STRS("application"), (void **)&ppzval) == FAILURE) { + /* For back compatibilty */ if (zend_hash_find(conf, YAF_STRS("yaf"), (void **)&ppzval) == FAILURE) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s", "expected an array of application configure"); + yaf_trigger_error(YAF_ERR_TYPE_ERROR TSRMLS_CC, "%s", "Expected an array of application configure"); return FAILURE; } } app = *ppzval; - if (Z_TYPE_P(app) != IS_ARRAY) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s", "expected an array of application configure"); + yaf_trigger_error(YAF_ERR_TYPE_ERROR TSRMLS_CC, "%s", "Expected an array of application configure"); return FAILURE; } if (zend_hash_find(Z_ARRVAL_P(app), YAF_STRS("directory"), (void **)&ppzval) == FAILURE || Z_TYPE_PP(ppzval) != IS_STRING) { - yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "%s", "expected a directory entry in application configures"); + yaf_trigger_error(YAF_ERR_STARTUP_FAILED TSRMLS_CC, "%s", "Expected a directory entry in application configures"); return FAILURE; } @@ -139,46 +213,43 @@ if (zend_hash_find(Z_ARRVAL_PP(ppzval), YAF_STRS("throwException"), (void **)&ppsval) == SUCCESS) { zval_add_ref(ppsval); - convert_to_boolean_ex(ppsval); + convert_to_int_ex(ppsval); YAF_G(throw_exception) = Z_BVAL_PP(ppsval); } if (zend_hash_find(Z_ARRVAL_PP(ppzval), YAF_STRS("catchException"), (void **)&ppsval) == SUCCESS) { zval_add_ref(ppsval); - convert_to_boolean_ex(ppsval); + convert_to_int_ex(ppsval); YAF_G(catch_exception) = Z_BVAL_PP(ppsval); } } do { - zval *module = NULL; - zval *zmodules = NULL; - char *ptrptr = NULL; + char *ptrptr; + zval *module, *zmodules; MAKE_STD_ZVAL(zmodules); array_init(zmodules); if (zend_hash_find(Z_ARRVAL_P(app), YAF_STRS("modules"), (void **)&ppzval) == SUCCESS && Z_TYPE_PP(ppzval) == IS_STRING && Z_STRLEN_PP(ppzval)) { - char *seg = NULL; - char *modules = estrndup(Z_STRVAL_PP(ppzval), Z_STRLEN_PP(ppzval)); - + char *seg, *modules; + modules = estrndup(Z_STRVAL_PP(ppzval), Z_STRLEN_PP(ppzval)); seg = php_strtok_r(modules, ",", &ptrptr); while(seg) { if (seg && strlen(seg)) { MAKE_STD_ZVAL(module); ZVAL_STRINGL(module, seg, strlen(seg), 1); - zend_hash_next_index_insert(Z_ARRVAL_P(zmodules), (void **)&module, sizeof(zval *), NULL); + zend_hash_next_index_insert(Z_ARRVAL_P(zmodules), + (void **)&module, sizeof(zval *), NULL); } seg = php_strtok_r(NULL, ",", &ptrptr); } - efree(modules); } else { MAKE_STD_ZVAL(module); ZVAL_STRING(module, YAF_G(default_module), 1); zend_hash_next_index_insert(Z_ARRVAL_P(zmodules), (void **)&module, sizeof(zval *), NULL); } - YAF_G(modules) = zmodules; } while (0); @@ -186,73 +257,38 @@ } /* }}} */ -/** {{{ boolean yaf_application_is_module_name(char *name, int len TSRMLS_DC) +/** {{{ proto Yaf_Application::__construct(mixed $config, string $environ = YAF_G(environ)) */ -boolean yaf_application_is_module_name(char *name, int len TSRMLS_DC) { - yaf_application_t *app = NULL; - zval *modules = NULL; - HashTable *ht = NULL; - zval **ppzval = NULL; - - app = yaf_read_static_property(yaf_application_ce, YAF_APPLICATION_PROPERTY_NAME_APP); - - if (!app || Z_TYPE_P(app) != IS_OBJECT) { - return FALSE; - } - - modules = yaf_read_property(app, YAF_APPLICATION_PROPERTY_NAME_MODULES); - - if (!modules || Z_TYPE_P(modules) != IS_ARRAY) { - return FALSE; - } - - ht = Z_ARRVAL_P(modules); - - zend_hash_internal_pointer_reset(ht); - while (zend_hash_get_current_data(ht, (void **)&ppzval) == SUCCESS) { - if (Z_TYPE_PP(ppzval) == IS_STRING - && strncasecmp(Z_STRVAL_PP(ppzval), name, len) == 0) { - return TRUE; - } - zend_hash_move_forward(ht); - } - return FALSE; -} -/* }}} */ - -/** {{{ proto Yaf_Application::__construct(mixed $config) -*/ PHP_METHOD(yaf_application, __construct) { - zval *config = NULL; - yaf_config_t *zconfig = NULL; - yaf_request_t *request = NULL; - yaf_dispatcher_t *zdispatcher = NULL; - yaf_application_t *app = NULL; - yaf_loader_t *loader = NULL; + zval *config; + yaf_config_t *zconfig; + yaf_request_t *request; + yaf_dispatcher_t *zdispatcher; + yaf_application_t *app; + yaf_loader_t *loader; + zval *section, *self; - zval *self = getThis(); - zval *section = NULL; - app = yaf_read_static_property(yaf_application_ce, YAF_APPLICATION_PROPERTY_NAME_APP); + self = getThis(); + app = zend_read_static_property(yaf_application_ce, ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_APP), 0 TSRMLS_CC); #if PHP_YAF_DEBUG - yaf_strict("you are running yaf in debug mode"); + php_error_docref(NULL, E_STRICT, "Yaf is running in debug mode"); #endif if (!ZVAL_IS_NULL(app)) { - yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "only one application can be initialized"); + yaf_trigger_error(YAF_ERR_STARTUP_FAILED TSRMLS_CC, "Only one application can be initialized"); RETURN_FALSE; } if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|z", &config, §ion) == FAILURE) { - yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "%s::__construct expects at least 1 parameter, 0 give", yaf_application_ce->name); - WRONG_PARAM_COUNT; + yaf_trigger_error(YAF_ERR_STARTUP_FAILED TSRMLS_CC, "%s::__construct expects at least 1 parameter, 0 give", yaf_application_ce->name); + return; } if (!section || Z_TYPE_P(section) != IS_STRING || !Z_STRLEN_P(section)) { MAKE_STD_ZVAL(section); - ZVAL_STRING(section, YAF_G(environ), TRUE); + ZVAL_STRING(section, YAF_G(environ), 0); zconfig = yaf_config_instance(NULL, config, section TSRMLS_CC); - zval_dtor(section); efree(section); } else { zconfig = yaf_config_instance(NULL, config, section TSRMLS_CC); @@ -261,57 +297,61 @@ if (zconfig == NULL || Z_TYPE_P(zconfig) != IS_OBJECT || !instanceof_function(Z_OBJCE_P(zconfig), yaf_config_ce TSRMLS_CC) - || yaf_application_parse_option(yaf_read_property(zconfig, YAF_CONFIG_PROPERT_NAME) TSRMLS_CC) == FAILURE) { - yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "initialization of application config failed"); + || yaf_application_parse_option(zend_read_property(Z_OBJCE_P(zconfig), + zconfig, ZEND_STRL(YAF_CONFIG_PROPERT_NAME), 0 TSRMLS_CC) TSRMLS_CC) == FAILURE) { + yaf_trigger_error(YAF_ERR_STARTUP_FAILED TSRMLS_CC, "Initialization of application config failed"); RETURN_FALSE; } request = yaf_request_instance(NULL, YAF_G(base_uri) TSRMLS_CC); - if (YAF_G(base_uri)) { efree(YAF_G(base_uri)); YAF_G(base_uri) = NULL; } if (!request) { - yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "initialization of request failed"); + yaf_trigger_error(YAF_ERR_STARTUP_FAILED TSRMLS_CC, "Initialization of request failed"); RETURN_FALSE; } zdispatcher = yaf_dispatcher_instance(NULL TSRMLS_CC); yaf_dispatcher_set_request(zdispatcher, request TSRMLS_CC); - if (NULL == zdispatcher || Z_TYPE_P(zdispatcher) != IS_OBJECT || !instanceof_function(Z_OBJCE_P(zdispatcher), yaf_dispatcher_ce TSRMLS_CC)) { - yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "initialization of application dispatcher failed"); + yaf_trigger_error(YAF_ERR_STARTUP_FAILED TSRMLS_CC, "Instantiation of application dispatcher failed"); RETURN_FALSE; } - yaf_update_property(self, YAF_APPLICATION_PROPERTY_NAME_CONFIG, zconfig); - yaf_update_property(self, YAF_APPLICATION_PROPERTY_NAME_DISPATCHER, zdispatcher); + zend_update_property(yaf_application_ce, self, ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_CONFIG), zconfig TSRMLS_CC); + zend_update_property(yaf_application_ce, self, ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_DISPATCHER), zdispatcher TSRMLS_CC); if (YAF_G(library_directory)) { - loader = yaf_loader_instance(NULL, YAF_G(library_directory), strlen(YAF_G(global_library))? YAF_G(global_library):NULL TSRMLS_CC); + loader = yaf_loader_instance(NULL, YAF_G(library_directory), + strlen(YAF_G(global_library))? YAF_G(global_library) : NULL TSRMLS_CC); efree(YAF_G(library_directory)); YAF_G(library_directory) = NULL; } else { - char *library_directory = NULL; + char *library_directory; spprintf(&library_directory, 0, "%s%c%s", YAF_G(directory), DEFAULT_SLASH, YAF_LIBRARY_DIRECTORY_NAME); - loader = yaf_loader_instance(NULL, library_directory, strlen(YAF_G(global_library))? YAF_G(global_library):NULL TSRMLS_CC); + loader = yaf_loader_instance(NULL, library_directory, + strlen(YAF_G(global_library))? YAF_G(global_library) : NULL TSRMLS_CC); efree(library_directory); } if (!loader) { - yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "initialization of application auto loader failed"); + yaf_trigger_error(YAF_ERR_STARTUP_FAILED TSRMLS_CC, "Initialization of application auto loader failed"); RETURN_FALSE; } - zend_update_property_bool(Z_OBJCE_P(self), self, YAF_STRL(YAF_APPLICATION_PROPERTY_NAME_RUN), 0 TSRMLS_CC); - zend_update_property_string(Z_OBJCE_P(self), self, YAF_STRL(YAF_APPLICATION_PROPERTY_NAME_ENV), YAF_G(environ) TSRMLS_CC); + zend_update_property_bool(Z_OBJCE_P(self), self, + ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_RUN), 0 TSRMLS_CC); + zend_update_property_string(Z_OBJCE_P(self), self, + ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_ENV), YAF_G(environ) TSRMLS_CC); if (YAF_G(modules)) { - yaf_update_property(self, YAF_APPLICATION_PROPERTY_NAME_MODULES, YAF_G(modules)); + zend_update_property(yaf_application_ce, self, + ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_MODULES), YAF_G(modules) TSRMLS_CC); Z_DELREF_P(YAF_G(modules)); YAF_G(modules) = NULL; } else { @@ -350,24 +390,22 @@ /** {{{ proto public Yaf_Application::run(void) */ PHP_METHOD(yaf_application, run) { - zval *running = NULL; - yaf_dispatcher_t *dispatcher= NULL; - yaf_application_t *self = getThis(); - yaf_response_t *response = NULL; + zval *running; + yaf_dispatcher_t *dispatcher; + yaf_response_t *response; + yaf_application_t *self = getThis(); - running = yaf_read_property(self, YAF_APPLICATION_PROPERTY_NAME_RUN); - + running = zend_read_property(yaf_application_ce, self, ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_RUN), 0 TSRMLS_CC); if (IS_BOOL == Z_TYPE_P(running) && Z_BVAL_P(running)) { - yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "application already run"); + yaf_trigger_error(YAF_ERR_STARTUP_FAILED TSRMLS_CC, "An application instance already run"); RETURN_TRUE; } - ZVAL_BOOL(running, TRUE); - yaf_update_property(self, YAF_APPLICATION_PROPERTY_NAME_RUN, running); + ZVAL_BOOL(running, 1); + zend_update_property(yaf_application_ce, self, ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_RUN), running TSRMLS_CC); - dispatcher = yaf_read_property(self, YAF_APPLICATION_PROPERTY_NAME_DISPATCHER); - + dispatcher = zend_read_property(yaf_application_ce, self, ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_DISPATCHER), 0 TSRMLS_CC); if ((response = yaf_dispatcher_dispatch(dispatcher TSRMLS_CC))) { RETURN_ZVAL(response, 1, 0); } @@ -381,7 +419,7 @@ */ PHP_METHOD(yaf_application, execute) { #if ((PHP_MAJOR_VERSION == 5) && (PHP_MINOR_VERSION > 2)) || (PHP_MAJOR_VERSION > 5) - zval *retval_ptr = NULL; + zval *retval_ptr; zend_fcall_info fci; zend_fcall_info_cache fci_cache; @@ -405,11 +443,10 @@ int argc = ZEND_NUM_ARGS(); if (argc < 1) { - WRONG_PARAM_COUNT; + return; } params = safe_emalloc(sizeof(zval **), argc, 0); - if (zend_get_parameters_array_ex(1, params) == FAILURE) { efree(params); RETURN_FALSE; @@ -432,7 +469,7 @@ RETURN_FALSE; } - if (call_user_function_ex(EG(function_table), NULL, *params[0], &retval_ptr, argc-1, params+1, 0, NULL TSRMLS_CC) == SUCCESS) { + if (call_user_function_ex(EG(function_table), NULL, *params[0], &retval_ptr, argc - 1, params + 1, 0, NULL TSRMLS_CC) == SUCCESS) { if (retval_ptr) { COPY_PZVAL_TO_ZVAL(*return_value, retval_ptr); } @@ -461,9 +498,7 @@ /** {{{ proto public Yaf_Application::app(void) */ PHP_METHOD(yaf_application, app) { - yaf_application_t * app = NULL; - app = zend_read_static_property(yaf_application_ce, YAF_STRL(YAF_APPLICATION_PROPERTY_NAME_APP), FALSE TSRMLS_CC); - + yaf_application_t *app = zend_read_static_property(yaf_application_ce, YAF_STRL(YAF_APPLICATION_PROPERTY_NAME_APP), 0 TSRMLS_CC); RETVAL_ZVAL(app, 1, 0); } /* }}} */ @@ -471,9 +506,7 @@ /** {{{ proto public Yaf_Application::getConfig(void) */ PHP_METHOD(yaf_application, getConfig) { - yaf_config_t *config = NULL; - config = yaf_read_property(getThis(), YAF_APPLICATION_PROPERTY_NAME_CONFIG); - + yaf_config_t *config = zend_read_property(yaf_application_ce, getThis(), ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_CONFIG), 0 TSRMLS_CC); RETVAL_ZVAL(config, 1, 0); } /* }}} */ @@ -481,9 +514,7 @@ /** {{{ proto public Yaf_Application::getDispatcher(void) */ PHP_METHOD(yaf_application, getDispatcher) { - yaf_dispatcher_t *dispatcher = NULL; - dispatcher = yaf_read_property(getThis(), YAF_APPLICATION_PROPERTY_NAME_DISPATCHER); - + yaf_dispatcher_t *dispatcher = zend_read_property(yaf_application_ce, getThis(), ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_DISPATCHER), 0 TSRMLS_CC); RETVAL_ZVAL(dispatcher, 1, 0); } /* }}} */ @@ -491,9 +522,7 @@ /** {{{ proto public Yaf_Application::getModules(void) */ PHP_METHOD(yaf_application, getModules) { - zval *modules = NULL; - modules = yaf_read_property(getThis(), YAF_APPLICATION_PROPERTY_NAME_MODULES); - + zval *modules = zend_read_property(yaf_application_ce, getThis(), ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_MODULES), 0 TSRMLS_CC); RETVAL_ZVAL(modules, 1, 0); } /* }}} */ @@ -501,21 +530,18 @@ /** {{{ proto public Yaf_Application::environ(void) */ PHP_METHOD(yaf_application, environ) { - zval * env = NULL; - env = yaf_read_property(getThis(), YAF_APPLICATION_PROPERTY_NAME_ENV); - - RETVAL_ZVAL(env, 1, 0); + zval *env = zend_read_property(yaf_application_ce, getThis(), ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_ENV), 0 TSRMLS_CC); + RETURN_STRINGL(Z_STRVAL_P(env), Z_STRLEN_P(env), 1); } /* }}} */ /** {{{ proto public Yaf_Application::bootstrap(void) */ PHP_METHOD(yaf_application, bootstrap) { - zend_class_entry **ce = NULL; - uint len = 0; - zval *self = getThis(); - char *bootstrap_path = NULL; - uint retval = TRUE; + char *bootstrap_path; + uint len, retval; + zend_class_entry **ce; + yaf_application_t *self = getThis(); if (zend_hash_find(EG(class_table), YAF_DEFAULT_BOOTSTRAP_LOWER, YAF_DEFAULT_BOOTSTRAP_LEN, (void **) &ce) != SUCCESS) { if (YAF_G(bootstrap)) { @@ -527,49 +553,45 @@ len = spprintf(&bootstrap_path, 0, "%s%c%s.%s", YAF_G(directory), DEFAULT_SLASH, YAF_DEFAULT_BOOTSTRAP, YAF_G(ext)); } - if (!yaf_loader_import(bootstrap_path, len + 1, FALSE TSRMLS_CC)) { - yaf_trigger_error(YAF_ERR_AUTOLOAD_FAILED, "could not find bootstrap file %s", bootstrap_path); - retval = FALSE; + if (!yaf_loader_import(bootstrap_path, len + 1, 0 TSRMLS_CC)) { + yaf_trigger_error(YAF_ERR_AUTOLOAD_FAILED TSRMLS_CC, "Couldn't find bootstrap file %s", bootstrap_path); + retval = 0; } else if (zend_hash_find(EG(class_table), YAF_DEFAULT_BOOTSTRAP_LOWER, YAF_DEFAULT_BOOTSTRAP_LEN, (void **) &ce) != SUCCESS) { - yaf_trigger_error(YAF_ERR_AUTOLOAD_FAILED, "could not find class %s in %s", YAF_DEFAULT_BOOTSTRAP, bootstrap_path); - retval = FALSE; + yaf_trigger_error(YAF_ERR_AUTOLOAD_FAILED TSRMLS_CC, "Couldn't find class %s in %s", YAF_DEFAULT_BOOTSTRAP, bootstrap_path); + retval = 0; } else if (!instanceof_function(*ce, yaf_bootstrap_ce TSRMLS_CC)) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s::bootstrap expect a %s instance, %s give", yaf_application_ce->name, yaf_bootstrap_ce->name, (*ce)->name); - retval = FALSE; + yaf_trigger_error(YAF_ERR_TYPE_ERROR TSRMLS_CC, "%s::bootstrap expect a %s instance, %s give", yaf_application_ce->name, yaf_bootstrap_ce->name, (*ce)->name); + retval = 0; } - } + } efree(bootstrap_path); if (!retval) { RETURN_FALSE; - } + } else { + zval *bootstrap; + HashTable *methods; + yaf_dispatcher_t *dispatcher; - do { - int len = 0; - long idx = 0; - char *func = NULL; - zval *bootstrap = NULL; - HashTable *methods = NULL; - zval *dispatcher = NULL; - - MAKE_STD_ZVAL(bootstrap); object_init_ex(bootstrap, *ce); - methods = &((*ce)->function_table); - dispatcher = yaf_read_property(self, YAF_APPLICATION_PROPERTY_NAME_DISPATCHER); + dispatcher = zend_read_property(yaf_application_ce, self, ZEND_STRL(YAF_APPLICATION_PROPERTY_NAME_DISPATCHER), 0 TSRMLS_CC); + methods = &((*ce)->function_table); for(zend_hash_internal_pointer_reset(methods); zend_hash_has_more_elements(methods) == SUCCESS; zend_hash_move_forward(methods)) { - + uint len; + long idx; + char *func; zend_hash_get_current_key_ex(methods, &func, &len, &idx, 0, NULL); + /* cann't use ZEND_STRL in strncasecmp, it cause a compile failed in VS2009 */ if (strncasecmp(func, YAF_BOOTSTRAP_INITFUNC_PREFIX, sizeof(YAF_BOOTSTRAP_INITFUNC_PREFIX)-1)) { continue; } zend_call_method(&bootstrap, *ce, NULL, func, len - 1, NULL, 1, dispatcher, NULL TSRMLS_CC); - /** an uncaught exception threw in function call */ if (EG(exception)) { zval_dtor(bootstrap); @@ -580,9 +602,8 @@ zval_dtor(bootstrap); efree(bootstrap); + } - } while (0); - RETVAL_ZVAL(self, 1, 0); } /* }}} */ @@ -590,19 +611,19 @@ /** {{{ yaf_application_methods */ zend_function_entry yaf_application_methods[] = { - PHP_ME(yaf_application, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(yaf_application, __destruct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_DTOR) - PHP_ME(yaf_application, __clone, NULL, ZEND_ACC_PRIVATE|ZEND_ACC_CLONE) - PHP_ME(yaf_application, __sleep, NULL, ZEND_ACC_PRIVATE) - PHP_ME(yaf_application, __wakeup, NULL, ZEND_ACC_PRIVATE) - PHP_ME(yaf_application, run, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_application, execute, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_application, app, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) - PHP_ME(yaf_application, environ, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_application, bootstrap, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_application, getConfig, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_application, getModules, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_application, getDispatcher, NULL, ZEND_ACC_PUBLIC) + PHP_ME(yaf_application, __construct, yaf_application_construct_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) + PHP_ME(yaf_application, run, yaf_application_run_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_application, execute, yaf_application_execute_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_application, app, yaf_application_app_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_ME(yaf_application, environ, yaf_application_environ_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_application, bootstrap, yaf_application_bootstrap_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_application, getConfig, yaf_application_getconfig_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_application, getModules, yaf_application_getmodule_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_application, getDispatcher, yaf_application_getdispatch_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_application, __destruct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_DTOR) + PHP_ME(yaf_application, __clone, NULL, ZEND_ACC_PRIVATE|ZEND_ACC_CLONE) + PHP_ME(yaf_application, __sleep, NULL, ZEND_ACC_PRIVATE) + PHP_ME(yaf_application, __wakeup, NULL, ZEND_ACC_PRIVATE) {NULL, NULL, NULL} }; /* }}} */ @@ -611,10 +632,9 @@ */ YAF_STARTUP_FUNCTION(application) { zend_class_entry ce; - YAF_INIT_CLASS_ENTRY(ce, "Yaf_Application", "Yaf\\Application", yaf_application_methods); - yaf_application_ce = zend_register_internal_class_ex(&ce, NULL, NULL TSRMLS_CC); + yaf_application_ce = zend_register_internal_class_ex(&ce, NULL, NULL TSRMLS_CC); yaf_application_ce->ce_flags |= ZEND_ACC_FINAL_CLASS; zend_declare_property_null(yaf_application_ce, YAF_STRL(YAF_APPLICATION_PROPERTY_NAME_CONFIG), ZEND_ACC_PROTECTED TSRMLS_CC); Modified: pecl/yaf/trunk/yaf_application.h =================================================================== --- pecl/yaf/trunk/yaf_application.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_application.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -27,7 +27,7 @@ extern zend_class_entry *yaf_application_ce; -boolean yaf_application_is_module_name(char *name, int len TSRMLS_DC); +int yaf_application_is_module_name(char *name, int len TSRMLS_DC); YAF_STARTUP_FUNCTION(application); #endif Modified: pecl/yaf/trunk/yaf_bootstrap.c =================================================================== --- pecl/yaf/trunk/yaf_bootstrap.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_bootstrap.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -26,7 +26,7 @@ #include "yaf_namespace.h" #include "yaf_bootstrap.h" -zend_class_entry * yaf_bootstrap_ce; +zend_class_entry *yaf_bootstrap_ce; /** {{{ yaf_bootstrap_methods */ Modified: pecl/yaf/trunk/yaf_bootstrap.h =================================================================== --- pecl/yaf/trunk/yaf_bootstrap.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_bootstrap.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -18,6 +18,11 @@ #ifndef YAF_BOOTSTRAP_H #define YAF_BOOTSTRAP_H +#define YAF_DEFAULT_BOOTSTRAP "Bootstrap" +#define YAF_DEFAULT_BOOTSTRAP_LOWER "bootstrap" +#define YAF_DEFAULT_BOOTSTRAP_LEN 10 +#define YAF_BOOTSTRAP_INITFUNC_PREFIX "_init" + extern zend_class_entry *yaf_bootstrap_ce; YAF_STARTUP_FUNCTION(bootstrap); Modified: pecl/yaf/trunk/yaf_config.c =================================================================== --- pecl/yaf/trunk/yaf_config.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_config.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -34,6 +34,9 @@ #include "yaf_config.h" zend_class_entry * yaf_config_ce; +#ifdef HAVE_SPL +extern PHPAPI zend_class_entry * spl_ce_Countable; +#endif /* {{{ YAF_ARG_INFO */ @@ -71,8 +74,8 @@ static void yaf_config_cache_dtor(yaf_config_cache **cache) { if (*cache) { zend_hash_destroy((*cache)->data); - pefree((*cache)->data, TRUE); - pefree(*cache, TRUE); + pefree((*cache)->data, 1); + pefree(*cache, 1); } } /* }}} */ @@ -85,14 +88,14 @@ case IS_STRING: case IS_CONSTANT: CHECK_ZVAL_STRING(*value); - pefree((*value)->value.str.val, TRUE); - pefree(*value, TRUE); + pefree((*value)->value.str.val, 1); + pefree(*value, 1); break; case IS_ARRAY: case IS_CONSTANT_ARRAY: { zend_hash_destroy((*value)->value.ht); - pefree((*value)->value.ht, TRUE); - pefree(*value, TRUE); + pefree((*value)->value.ht, 1); + pefree(*value, 1); } break; } @@ -173,7 +176,7 @@ */ static zval * yaf_config_ini_zval_persistent(zval *zvalue TSRMLS_DC) { zval *new = NULL; - new = (zval *)pemalloc(sizeof(zval), TRUE); + new = (zval *)pemalloc(sizeof(zval), 1); INIT_PZVAL(new); switch (zvalue->type) { case IS_RESOURCE: @@ -187,7 +190,7 @@ case IS_STRING: CHECK_ZVAL_STRING(zvalue); Z_TYPE_P(new) = IS_STRING; - new->value.str.val = pestrndup(zvalue->value.str.val, zvalue->value.str.len, TRUE); + new->value.str.val = pestrndup(zvalue->value.str.val, zvalue->value.str.len, 1); new->value.str.len = zvalue->value.str.len; break; case IS_ARRAY: @@ -195,12 +198,12 @@ HashTable *original_ht = zvalue->value.ht; HashTable *tmp_ht = NULL; - tmp_ht = (HashTable *)pemalloc(sizeof(HashTable), TRUE); + tmp_ht = (HashTable *)pemalloc(sizeof(HashTable), 1); if (!tmp_ht) { return NULL; } - zend_hash_init(tmp_ht, zend_hash_num_elements(original_ht), NULL, (dtor_func_t)yaf_config_zval_dtor, TRUE); + zend_hash_init(tmp_ht, zend_hash_num_elements(original_ht), NULL, (dtor_func_t)yaf_config_zval_dtor, 1); yaf_config_copy_persistent(tmp_ht, original_ht TSRMLS_CC); Z_TYPE_P(new) = IS_ARRAY; new->value.ht = tmp_ht; @@ -228,7 +231,7 @@ case IS_CONSTANT: case IS_STRING: CHECK_ZVAL_STRING(zvalue); - ZVAL_STRINGL(new, zvalue->value.str.val, zvalue->value.str.len, TRUE); + ZVAL_STRINGL(new, zvalue->value.str.val, zvalue->value.str.len, 1); break; case IS_ARRAY: case IS_CONSTANT_ARRAY: { @@ -286,27 +289,27 @@ int len = 0; if (!YAF_G(configs)) { - YAF_G(configs) = (HashTable *)pemalloc(sizeof(HashTable), TRUE); + YAF_G(configs) = (HashTable *)pemalloc(sizeof(HashTable), 1); if (!YAF_G(configs)) { return; } - zend_hash_init(YAF_G(configs), 8, NULL, (dtor_func_t) yaf_config_cache_dtor, TRUE); + zend_hash_init(YAF_G(configs), 8, NULL, (dtor_func_t) yaf_config_cache_dtor, 1); } - cache = (yaf_config_cache *)pemalloc(sizeof(yaf_config_cache), TRUE); + cache = (yaf_config_cache *)pemalloc(sizeof(yaf_config_cache), 1); if (!cache) { return; } - persistent = (HashTable *)pemalloc(sizeof(HashTable), TRUE); + persistent = (HashTable *)pemalloc(sizeof(HashTable), 1); if (!persistent) { return; } configs = yaf_read_property(this_ptr, YAF_CONFIG_PROPERT_NAME); - zend_hash_init(persistent, zend_hash_num_elements(Z_ARRVAL_P(configs)), NULL, (dtor_func_t) yaf_config_zval_dtor, TRUE); + zend_hash_init(persistent, zend_hash_num_elements(Z_ARRVAL_P(configs)), NULL, (dtor_func_t) yaf_config_zval_dtor, 1); yaf_config_copy_persistent(persistent, Z_ARRVAL_P(configs) TSRMLS_CC); Modified: pecl/yaf/trunk/yaf_config.h =================================================================== --- pecl/yaf/trunk/yaf_config.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_config.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -18,6 +18,7 @@ #ifndef YAF_CONFIG_H #define YAF_CONFIG_H +#define YAF_EXTRACT_FUNC_NAME "extract" #define YAF_CONFIG_PROPERT_NAME "_config" #define YAF_CONFIG_PROPERT_NAME_READONLY "_readonly" Modified: pecl/yaf/trunk/yaf_controller.c =================================================================== --- pecl/yaf/trunk/yaf_controller.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_controller.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -37,21 +37,63 @@ zend_class_entry * yaf_controller_ce; -/** {{{ zval * yaf_controller_render(yaf_controller_t *controller, char *action_name, int len, zval *var_array TSRMLS_DC) +/** {{{ ARG_INFO */ -zval * yaf_controller_render(yaf_controller_t *controller, char *action_name, int len, zval *var_array TSRMLS_DC) { - char *path = NULL; - int path_len = 0; - char *view_ext = NULL; - char *self_name = NULL; - char *tmp = NULL; - zval *name = NULL; - zval *param = NULL; - zval *ret = NULL; - yaf_view_t *view = NULL; +static +ZEND_BEGIN_ARG_INFO_EX(yaf_controller_void_arginfo, 0, 0, 0) +ZEND_END_ARG_INFO() - view = yaf_read_property(controller, YAF_CONTROLLER_PROPERTY_NAME_VIEW); - name = yaf_read_property(controller, YAF_CONTROLLER_PROPERTY_NAME_NAME); +static +ZEND_BEGIN_ARG_INFO_EX(yaf_controller_initview_arginfo, 0, 0, 0) + ZEND_ARG_ARRAY_INFO(0, options, 1) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_controller_getiarg_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, name) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_controller_setvdir_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, view_directory) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_controller_forward_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, module) + ZEND_ARG_INFO(0, controller) + ZEND_ARG_INFO(0, action) + ZEND_ARG_ARRAY_INFO(0, paramters, 1) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_controller_redirect_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, url) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_controller_render_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, tpl) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_controller_display_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, tpl) + ZEND_ARG_ARRAY_INFO(0, parameters, 1) +ZEND_END_ARG_INFO() +/* }}} */ + +/** {{{ zval * yaf_controller_render(zend_class_entry *ce, yaf_controller_t *instance, char *action_name, int len, zval *var_array TSRMLS_DC) + */ +static zval * yaf_controller_render(zend_class_entry *ce, yaf_controller_t *instance, char *action_name, int len, zval *var_array TSRMLS_DC) { + char *path, *view_ext, *self_name, *tmp; + zval *name, *param, *ret; + int path_len; + yaf_view_t *view; + + view = zend_read_property(ce, instance, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_VIEW), 0 TSRMLS_CC); + name = zend_read_property(ce, instance, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_NAME), 0 TSRMLS_CC); view_ext = YAF_G(view_ext); self_name = zend_str_tolower_dup(Z_STRVAL_P(name), Z_STRLEN_P(name)); @@ -80,7 +122,7 @@ efree(action_name); MAKE_STD_ZVAL(param); - ZVAL_STRING(param, path, FALSE); + ZVAL_STRING(param, path, 0); if (var_array) { zend_call_method_with_2_params(&view, Z_OBJCE_P(view), NULL, "render", &ret, param, var_array); @@ -99,21 +141,17 @@ } /* }}} */ -/** {{{ boolean yaf_controller_display(yaf_controller_t *controller, char *action_name, int len, zval *var_array TSRMLS_DC) +/** {{{ static int yaf_controller_display(zend_class_entry *ce, yaf_controller_t *instance, char *action_name, int len, zval *var_array TSRMLS_DC) */ -boolean yaf_controller_display(yaf_controller_t *controller, char *action_name, int len, zval *var_array TSRMLS_DC) { - char *path = NULL; - int path_len = 0; - char *view_ext = NULL; - char *self_name = NULL; - zval *name = NULL; - zval *param = NULL; - zval *ret = NULL; +static int yaf_controller_display(zend_class_entry *ce, yaf_controller_t *instance, char *action_name, int len, zval *var_array TSRMLS_DC) { + char *path, *view_ext, *self_name; + zval *name, *param, *ret; + int path_len; - yaf_view_t *view = NULL; + yaf_view_t *view; - view = yaf_read_property(controller, YAF_CONTROLLER_PROPERTY_NAME_VIEW); - name = yaf_read_property(controller, YAF_CONTROLLER_PROPERTY_NAME_NAME); + view = zend_read_property(ce, instance, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_VIEW), 0 TSRMLS_CC); + name = zend_read_property(ce, instance, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_NAME), 0 TSRMLS_CC); view_ext = YAF_G(view_ext); self_name = zend_str_tolower_dup(Z_STRVAL_P(name), Z_STRLEN_P(name)); @@ -121,7 +159,7 @@ path_len = spprintf(&path, 0, "%s%c%s.%s", self_name, DEFAULT_SLASH, action_name, view_ext); MAKE_STD_ZVAL(param); - ZVAL_STRING(param, path, FALSE); + ZVAL_STRING(param, path, 0); if (var_array) { zend_call_method_with_2_params(&view, Z_OBJCE_P(view), NULL, "display", &ret, param, var_array); @@ -133,35 +171,34 @@ efree(param); if (!ret || (Z_TYPE_P(ret) == IS_BOOL && !Z_BVAL_P(ret))) { - return FALSE; + return 0; } - - return TRUE; + return 1; } /* }}} */ -/** {{{ boolean yaf_controller_construct(yaf_controller_t *self, yaf_request_t *request, yaf_response_t *responseew_t *view, zval *args TSRMLS_DC) +/** {{{ int yaf_controller_construct(zend_class_entry *ce, yaf_controller_t *self, yaf_request_t *request, yaf_response_t *responseew_t *view, zval *args TSRMLS_DC) */ -boolean yaf_controller_construct(yaf_controller_t *self, yaf_request_t *request, yaf_response_t *response, yaf_view_t *view, zval *args TSRMLS_DC) { - zval *module = NULL; +int yaf_controller_construct(zend_class_entry *ce, yaf_controller_t *self, yaf_request_t *request, yaf_response_t *response, yaf_view_t *view, zval *args TSRMLS_DC) { + zval *module; if (args) { - yaf_update_property(self, YAF_CONTROLLER_PROPERTY_NAME_ARGS, args); + zend_update_property(ce, self, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_ARGS), args TSRMLS_CC); } - module = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_MODULE); + module = zend_read_property(Z_OBJCE_P(request), request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), 0 TSRMLS_CC); - yaf_update_property(self, YAF_CONTROLLER_PROPERTY_NAME_REQUEST, request); - yaf_update_property(self, YAF_CONTROLLER_PROPERTY_NAME_RESPONSE, response); - yaf_update_property(self, YAF_CONTROLLER_PROPERTY_NAME_MODULE, module); - yaf_update_property(self, YAF_CONTROLLER_PROPERTY_NAME_VIEW, view); + zend_update_property(ce, self, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_REQUEST), request TSRMLS_CC); + zend_update_property(ce, self, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_RESPONSE), response TSRMLS_CC); + zend_update_property(ce, self, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_MODULE), module TSRMLS_CC); + zend_update_property(ce, self, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_VIEW), view TSRMLS_CC); - if (!instanceof_function(Z_OBJCE_P(self), yaf_action_ce TSRMLS_CC) - && zend_hash_exists(&Z_OBJCE_P(self)->function_table, YAF_STRS("init"))) { - zend_call_method_with_0_params(&self, Z_OBJCE_P(self), NULL, "init", NULL); + if (!instanceof_function(ce, yaf_action_ce TSRMLS_CC) + && zend_hash_exists(&(ce->function_table), ZEND_STRS("init"))) { + zend_call_method_with_0_params(&self, ce, NULL, "init", NULL); } - return TRUE; + return 1; } /* }}} */ @@ -175,17 +212,17 @@ /** {{{ proto protected Yaf_Controller_Abstract::__construct(Yaf_Request_Abstract $request, Yaf_Response_abstrct $response, Yaf_View_Interface $view, array $invokeArgs = NULL) */ PHP_METHOD(yaf_controller, __construct) { - yaf_request_t *request = NULL; - yaf_response_t *response = NULL; - yaf_view_t *view = NULL; + yaf_request_t *request; + yaf_response_t *response; + yaf_view_t *view; zval *invoke_arg = NULL; - yaf_controller_t *self = getThis(); + yaf_controller_t *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ooo|z", &request, yaf_request_ce, &response, yaf_response_ce, &view, yaf_view_interface_ce, &invoke_arg) == FAILURE) { - WRONG_PARAM_COUNT; + return; } else { - if(!yaf_controller_construct(self, request, response, view, invoke_arg TSRMLS_CC)) { + if(!yaf_controller_construct(Z_OBJCE_P(self), self, request, response, view, invoke_arg TSRMLS_CC)) { RETURN_FALSE; } } @@ -195,10 +232,7 @@ /** {{{ proto public Yaf_Controller_Abstract::getView(void) */ PHP_METHOD(yaf_controller, getView) { - yaf_view_t *view = NULL; - - view = yaf_read_property(getThis(), YAF_CONTROLLER_PROPERTY_NAME_VIEW); - + yaf_view_t *view = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_VIEW), 0 TSRMLS_CC); RETURN_ZVAL(view, 1, 0); } /* }}} */ @@ -206,7 +240,7 @@ /** {{{ proto public Yaf_Controller_Abstract::getRequest(void) */ PHP_METHOD(yaf_controller, getRequest) { - yaf_request_t *request = yaf_read_property(getThis(), YAF_CONTROLLER_PROPERTY_NAME_REQUEST); + yaf_request_t *request = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_REQUEST), 0 TSRMLS_CC); RETURN_ZVAL(request, 1, 0); } /* }}} */ @@ -214,7 +248,7 @@ /** {{{ proto public Yaf_Controller_Abstract::getResponse(void) */ PHP_METHOD(yaf_controller, getResponse) { - yaf_view_t *response = yaf_read_property(getThis(), YAF_CONTROLLER_PROPERTY_NAME_RESPONSE); + yaf_view_t *response = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_RESPONSE), 0 TSRMLS_CC); RETURN_ZVAL(response, 1, 0); } /* }}} */ @@ -229,17 +263,16 @@ /** {{{ proto public Yaf_Controller_Abstract::getInvokeArg(string $name) */ PHP_METHOD(yaf_controller, getInvokeArg) { - char *name = NULL; - int len = 0; - zval *args = NULL; + char *name; + uint len = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &len) == FAILURE) { WRONG_PARAM_COUNT; } if (len) { - zval **ppzval = NULL; - args = yaf_read_property(getThis(), YAF_CONTROLLER_PROPERTY_NAME_ARGS); + zval **ppzval, *args; + args = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_ARGS), 0 TSRMLS_CC); if (ZVAL_IS_NULL(args)) { RETURN_NULL(); @@ -256,10 +289,7 @@ /** {{{ proto public Yaf_Controller_Abstract::getInvokeArgs(void) */ PHP_METHOD(yaf_controller, getInvokeArgs) { - zval *args = NULL; - - args = yaf_read_property(getThis(), YAF_CONTROLLER_PROPERTY_NAME_ARGS); - + zval *args = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_ARGS), 0 TSRMLS_CC); RETURN_ZVAL(args, 1, 0); } /* }}} */ @@ -267,95 +297,99 @@ /** {{{ proto public Yaf_Controller_Abstract::getModuleName(void) */ PHP_METHOD(yaf_controller, getModuleName) { - zval *module = yaf_read_property(getThis(), YAF_CONTROLLER_PROPERTY_NAME_MODULE); - + zval *module = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_MODULE), 0 TSRMLS_CC); RETURN_ZVAL(module, 1, 0); } /* }}} */ -/** {{{ proto public Yaf_Controller_Abstract::setViewpath +/** {{{ proto public Yaf_Controller_Abstract::setViewpath(string $view_directory) */ PHP_METHOD(yaf_controller, setViewpath) { - zval *path = NULL; - yaf_view_t *view = NULL; + zval *path; + yaf_view_t *view; + zend_class_entry *view_ce; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &path) == FAILURE - || Z_TYPE_P(path) != IS_STRING) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &path) == FAILURE) { + return; } - view = yaf_read_property(getThis(), YAF_CONTROLLER_PROPERTY_NAME_VIEW); - if (Z_OBJCE_P(view) == yaf_view_simple_ce) { - yaf_update_property(view, YAF_VIEW_PROPERTY_NAME_TPLDIR, path); + if (Z_TYPE_P(path) != IS_STRING) { + RETURN_FALSE; + } + + view = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_VIEW), 0 TSRMLS_CC); + if ((view_ce = Z_OBJCE_P(view)) == yaf_view_simple_ce) { + zend_update_property(view_ce, view, ZEND_STRL(YAF_VIEW_PROPERTY_NAME_TPLDIR), path TSRMLS_CC); } else { - zend_call_method_with_1_params(&view, Z_OBJCE_P(view), NULL, "setscriptpath", NULL, path); + zend_call_method_with_1_params(&view, view_ce, NULL, "setscriptpath", NULL, path); } RETURN_TRUE; } /* }}} */ -/** {{{ proto public Yaf_Controller_Abstract::getViewpath +/** {{{ proto public Yaf_Controller_Abstract::getViewpath(void) */ PHP_METHOD(yaf_controller, getViewpath) { - zval *view = yaf_read_property(getThis(), YAF_CONTROLLER_PROPERTY_NAME_VIEW); - if (Z_OBJCE_P(view) == yaf_view_simple_ce) { - zval *tpl_dir = yaf_read_property(view, YAF_VIEW_PROPERTY_NAME_TPLDIR); + zend_class_entry *view_ce; + zval *view = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_VIEW), 0 TSRMLS_CC); + if ((view_ce = Z_OBJCE_P(view)) == yaf_view_simple_ce) { + zval *tpl_dir = zend_read_property(view_ce, view, ZEND_STRL(YAF_VIEW_PROPERTY_NAME_TPLDIR), 0 TSRMLS_CC); RETURN_ZVAL(tpl_dir, 1, 0); } else { - zval *ret = NULL; - zend_call_method_with_0_params(&view, Z_OBJCE_P(view), NULL, "getscriptpath", &ret); + zval *ret; + zend_call_method_with_0_params(&view, view_ce, NULL, "getscriptpath", &ret); RETURN_ZVAL(ret, 1, 0); } } /* }}} */ -/** {{{ proto public Yaf_Controller_Abstract::forward +/** {{{ proto public Yaf_Controller_Abstract::forward($module, $controller, $action, $args = NULL) */ PHP_METHOD(yaf_controller, forward) { - zval *controller = NULL; - zval *module = NULL; - zval *action = NULL; - zval *args = NULL; - zval *parameters = NULL; - yaf_request_t *request = NULL; - yaf_controller_t *self = getThis(); + zval *controller, *module, *action, *args, *parameters; + yaf_request_t *request; + zend_class_entry *ce, *request_ce; + yaf_controller_t *self = getThis(); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|zzz", &module, &controller, &action, &args) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - request = yaf_read_property(self, YAF_CONTROLLER_PROPERTY_NAME_REQUEST); - parameters = yaf_read_property(self, YAF_CONTROLLER_PROPERTY_NAME_ARGS); + ce = Z_OBJCE_P(self); + request = zend_read_property(ce, self, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_REQUEST), 0 TSRMLS_CC); + parameters = zend_read_property(ce, self, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_ARGS), 0 TSRMLS_CC); + if (ZVAL_IS_NULL(parameters)) { MAKE_STD_ZVAL(parameters); array_init(parameters); } + if (Z_TYPE_P(request) != IS_OBJECT + || !instanceof_function((request_ce = Z_OBJCE_P(request)), yaf_request_ce TSRMLS_CC)) { + RETURN_FALSE + } + switch (ZEND_NUM_ARGS()) { case 1: if (Z_TYPE_P(module) != IS_STRING) { - yaf_trigger_error(YAF_ERR_ERROR, "%s:forward expects a string action name", Z_OBJCE_P(self)->name); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s:forward expects a string action name", ce->name); zval_dtor(parameters); efree(parameters); RETURN_FALSE; } - Z_ADDREF_P(module); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION, module); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), module); break; case 2: if (Z_TYPE_P(controller) == IS_STRING) { - Z_ADDREF_P(module); - Z_ADDREF_P(controller); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_CONTROLLER, module); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION, controller); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), module TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), controller TSRMLS_CC); } else if (Z_TYPE_P(controller) == IS_ARRAY) { - Z_ADDREF_P(module); - Z_ADDREF_P(controller); zend_hash_copy(Z_ARRVAL_P(parameters), Z_ARRVAL_P(controller), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *)); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION, module); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_PARAMS, parameters); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), module TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), parameters TSRMLS_CC); } else { zval_dtor(parameters); efree(parameters); @@ -364,20 +398,14 @@ break; case 3: if (Z_TYPE_P(action) == IS_STRING) { - Z_ADDREF_P(module); - Z_ADDREF_P(controller); - Z_ADDREF_P(action); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_MODULE, module); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_CONTROLLER, controller); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION, action); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), module TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), controller TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), action TSRMLS_CC); } else if (Z_TYPE_P(action) == IS_ARRAY) { - Z_ADDREF_P(module); - Z_ADDREF_P(controller); - Z_ADDREF_P(action); zend_hash_copy(Z_ARRVAL_P(parameters), Z_ARRVAL_P(action), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *)); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_CONTROLLER, module); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION, controller); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_PARAMS, parameters); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), module TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), controller TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), parameters TSRMLS_CC); } else { zval_dtor(parameters); efree(parameters); @@ -386,24 +414,20 @@ break; case 4: if (Z_TYPE_P(args) != IS_ARRAY) { - yaf_trigger_error(YAF_ERR_ERROR, "parameters must be an array"); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameters must be an array"); zval_dtor(parameters); efree(parameters); RETURN_FALSE; } - Z_ADDREF_P(module); - Z_ADDREF_P(controller); - Z_ADDREF_P(action); - Z_ADDREF_P(args); zend_hash_copy(Z_ARRVAL_P(parameters), Z_ARRVAL_P(args), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *)); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_MODULE, module); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_CONTROLLER, controller); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION, action); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_PARAMS, parameters); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), module TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), controller TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), action TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), parameters TSRMLS_CC); break; } - (void)yaf_request_set_dispatched(request, FALSE TSRMLS_CC); + (void)yaf_request_set_dispatched(request_ce, request, 0 TSRMLS_CC); RETURN_TRUE; } /* }}} */ @@ -411,17 +435,18 @@ /** {{{ proto public Yaf_Controller_Abstract::redirect(string $url) */ PHP_METHOD(yaf_controller, redirect) { - yaf_response_t *response = NULL; - char *location; int location_len; - yaf_controller_t *self = getThis(); + char *location; + uint location_len; + yaf_response_t *response; + yaf_controller_t *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &location, &location_len) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - response = yaf_read_property(self, YAF_CONTROLLER_PROPERTY_NAME_RESPONSE); + response = zend_read_property(Z_OBJCE_P(self), self, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_RESPONSE), 0 TSRMLS_CC); - yaf_response_set_redirect(response, location, location_len TSRMLS_CC); + (void)yaf_response_set_redirect(response, location, location_len TSRMLS_CC); RETURN_TRUE; } @@ -430,14 +455,14 @@ /** {{{ proto protected Yaf_Controller_Abstract::render(string $action, array $var_array = NULL) */ PHP_METHOD(yaf_controller, render) { - char *action_name = NULL; - int action_name_len = 0; - zval *var_array = NULL; + char *action_name; + uint action_name_len; + zval *var_array = NULL; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z", &action_name, &action_name_len, &var_array) == FAILURE) { - WRONG_PARAM_COUNT; + return; } else { - zval *output = yaf_controller_render(getThis(), action_name, action_name_len, var_array TSRMLS_CC); + zval *output = yaf_controller_render(Z_OBJCE_P(getThis()), getThis(), action_name, action_name_len, var_array TSRMLS_CC); if (output) { RETURN_ZVAL(output, 1, 0); } else { @@ -450,14 +475,14 @@ /** {{{ proto protected Yaf_Controller_Abstract::display(string $action, array $var_array = NULL) */ PHP_METHOD(yaf_controller, display) { - char *action_name = NULL; - int action_name_len = 0; - zval *var_array = NULL; + char *action_name; + uint action_name_len; + zval *var_array = NULL; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z", &action_name, &action_name_len, &var_array) == FAILURE) { - WRONG_PARAM_COUNT; + return; } else { - RETURN_BOOL(yaf_controller_display(getThis(), action_name, action_name_len, var_array TSRMLS_CC)); + RETURN_BOOL(yaf_controller_display(Z_OBJCE_P(getThis()), getThis(), action_name, action_name_len, var_array TSRMLS_CC)); } } /* }}} */ @@ -471,22 +496,21 @@ /** {{{ yaf_controller_methods */ zend_function_entry yaf_controller_methods[] = { - PHP_ME(yaf_controller, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_FINAL|ZEND_ACC_PUBLIC) - /* PHP_ME(yaf_controller, init, NULL, ZEND_ACC_PUBLIC) */ - PHP_ME(yaf_controller, __clone, NULL, ZEND_ACC_PRIVATE|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, render, NULL, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, display, NULL, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, getRequest, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, getResponse, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, getModuleName,NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, getView, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, initView, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, setViewpath, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, getViewpath, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, forward, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, redirect, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, getInvokeArgs,NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) - PHP_ME(yaf_controller, getInvokeArg, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, render, yaf_controller_render_arginfo, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, display, yaf_controller_display_arginfo, ZEND_ACC_PROTECTED|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, getRequest, yaf_controller_void_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, getResponse, yaf_controller_void_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, getModuleName,yaf_controller_void_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, getView, yaf_controller_void_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, initView, yaf_controller_initview_arginfo,ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, setViewpath, yaf_controller_setvdir_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, getViewpath, yaf_controller_void_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, forward, yaf_controller_forward_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, redirect, yaf_controller_redirect_arginfo,ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, getInvokeArgs,yaf_controller_void_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, getInvokeArg, yaf_controller_getiarg_arginfo,ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) + PHP_ME(yaf_controller, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_FINAL|ZEND_ACC_PUBLIC) + PHP_ME(yaf_controller, __clone, NULL, ZEND_ACC_PRIVATE|ZEND_ACC_FINAL) {NULL, NULL, NULL} }; /* }}} */ Modified: pecl/yaf/trunk/yaf_controller.h =================================================================== --- pecl/yaf/trunk/yaf_controller.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_controller.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -22,15 +22,14 @@ #define YAF_CONTROLLER_PROPERTY_NAME_NAME "_name" #define YAF_CONTROLLER_PROPERTY_NAME_SCRIPT "_script_path" #define YAF_CONTROLLER_PROPERTY_NAME_RESPONSE "_response" -#define YAF_CONTROLLER_PROPERTY_NAME_REQUEST "_request" +#define YAF_CONTROLLER_PROPERTY_NAME_REQUEST "_request" #define YAF_CONTROLLER_PROPERTY_NAME_ARGS "_invoke_args" -#define YAF_CONTROLLER_PROPERTY_NAME_ACTIONS "actions" +#define YAF_CONTROLLER_PROPERTY_NAME_ACTIONS "actions" #define YAF_CONTROLLER_PROPERTY_NAME_VIEW "_view" -extern zend_class_entry * yaf_controller_ce; - -boolean yaf_controller_construct(yaf_controller_t *self, yaf_request_t *request, yaf_response_t *response, yaf_view_t *view, zval *args TSRMLS_DC); - +extern zend_class_entry *yaf_controller_ce; +int yaf_controller_construct(zend_class_entry *ce, yaf_controller_t *self, + yaf_request_t *request, yaf_response_t *response, yaf_view_t *view, zval *args TSRMLS_DC); YAF_STARTUP_FUNCTION(controller); #endif /* Modified: pecl/yaf/trunk/yaf_dispatcher.c =================================================================== --- pecl/yaf/trunk/yaf_dispatcher.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_dispatcher.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -42,15 +42,100 @@ zend_class_entry * yaf_dispatcher_ce; +/** {{{ ARG_INFO + */ +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_void_arginfo, 0, 0, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_dispatch_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, request) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_seterrhdler_arginfo, 0, 0, 2) + ZEND_ARG_INFO(0, callback) + ZEND_ARG_INFO(0, error_types) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_flush_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, flag) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_regplugin_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, plugin) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_setrequest_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, plugin) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_throwex_arginfo, 0, 0, 0) + ZEND_ARG_INFO(0, flag) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_catchex_arginfo, 0, 0, 0) + ZEND_ARG_INFO(0, flag) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_autorender_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, flag) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_returnresp_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, flag) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_initview_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, templates_dir) + ZEND_ARG_ARRAY_INFO(0, options, 1) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_setview_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, view) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_setappdir_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, directory) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_setctrl_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, controller) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_setmodule_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, module) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(yaf_dispatcher_setaction_arginfo, 0, 0, 1) + ZEND_ARG_INFO(0, action) +ZEND_END_ARG_INFO() + +/* }}} */ + /** {{{ yaf_dispatcher_t * yaf_dispatcher_instance(zval *this_ptr TSRMLS_DC) */ yaf_dispatcher_t * yaf_dispatcher_instance(yaf_dispatcher_t *this_ptr TSRMLS_DC) { - yaf_dispatcher_t *instance = NULL; - yaf_response_t *response = NULL; - yaf_router_t *router = NULL; - zval *plugins = NULL; + zval *plugins; + yaf_router_t *router; + yaf_response_t *response; + yaf_dispatcher_t *instance; - instance = yaf_read_static_property(yaf_dispatcher_ce, YAF_DISPATCHER_PROPERTY_NAME_INSTANCE); + instance = zend_read_static_property(yaf_dispatcher_ce, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_INSTANCE), 0 TSRMLS_CC); if (IS_OBJECT == Z_TYPE_P(instance) && instanceof_function(Z_OBJCE_P(instance), yaf_dispatcher_ce TSRMLS_CC)) { @@ -74,50 +159,48 @@ MAKE_STD_ZVAL(plugins); array_init(plugins); - yaf_update_property(instance, YAF_DISPATCHER_PROPERTY_NAME_PLUGINS, plugins); + zend_update_property(yaf_dispatcher_ce, instance, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_PLUGINS), plugins TSRMLS_CC); + router = yaf_router_instance(NULL TSRMLS_CC); response = yaf_response_instance(NULL, sapi_module.name TSRMLS_CC); - router = yaf_router_instance(NULL TSRMLS_CC); - yaf_update_property(instance, YAF_DISPATCHER_PROPERTY_NAME_RESPONSE, response); - yaf_update_property(instance, YAF_DISPATCHER_PROPERTY_NAME_ROUTER, router); + zend_update_property(yaf_dispatcher_ce, instance, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_RESPONSE), response TSRMLS_CC); + zend_update_property(yaf_dispatcher_ce, instance, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_ROUTER), router TSRMLS_CC); - zend_update_property_string(Z_OBJCE_P(instance), instance, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_MODULE), YAF_G(default_module) TSRMLS_CC); - zend_update_property_string(Z_OBJCE_P(instance), instance, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_CONTROLLER), YAF_G(default_controller) TSRMLS_CC); - zend_update_property_string(Z_OBJCE_P(instance), instance, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_ACTION), YAF_G(default_action) TSRMLS_CC); + zend_update_property_string(yaf_dispatcher_ce, instance, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_MODULE), YAF_G(default_module) TSRMLS_CC); + zend_update_property_string(yaf_dispatcher_ce, instance, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_CONTROLLER), YAF_G(default_controller) TSRMLS_CC); + zend_update_property_string(yaf_dispatcher_ce, instance, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_ACTION), YAF_G(default_action) TSRMLS_CC); - yaf_update_static_property(Z_OBJCE_P(instance), YAF_DISPATCHER_PROPERTY_NAME_INSTANCE, instance); + zend_update_static_property(yaf_dispatcher_ce, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_INSTANCE), instance TSRMLS_CC); return instance; } /* }}} */ -/** {{{ static void yaf_dispatcher_get_call_parmaters(yaf_request_t *request, zend_function *fptr, zval ****params, uint *count TSRMLS_DC) +/** {{{ static void yaf_dispatcher_get_call_parmaters(zend_class_entry *request_ce, yaf_request_t *request, zend_function *fptr, zval ****params, uint *count TSRMLS_DC) */ -static void yaf_dispatcher_get_call_parmaters(yaf_request_t *request, zend_function *fptr, zval ****params, uint *count TSRMLS_DC) { - zval *args = NULL; - zval **arg = NULL; - zend_arg_info *arg_info = NULL; - uint current = 0; - HashTable *params_ht = NULL; - char *key = NULL; - int keylen = 0; - long idx = 0; - long llen = 0; +static void yaf_dispatcher_get_call_parmaters(zend_class_entry *request_ce, yaf_request_t *request, zend_function *fptr, zval ****params, uint *count TSRMLS_DC) { + zval *args, **arg; + zend_arg_info *arg_info; + uint current; + HashTable *params_ht; - args = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_PARAMS); + args = zend_read_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), 0 TSRMLS_CC); params_ht = Z_ARRVAL_P(args); arg_info = fptr->common.arg_info; *params = safe_emalloc(sizeof(zval **), fptr->common.num_args, 0); - for (;current < fptr->common.num_args; current++, arg_info++) { if (zend_hash_find(params_ht, arg_info->name, arg_info->name_len + 1, (void **)&arg) == SUCCESS) { (*params)[current] = arg; (*count)++; } else { - arg = NULL; + char *key; + uint keylen; + long idx, llen; + + arg = NULL; llen = arg_info->name_len + 1; /* since we need search ignoring case, can't use zend_hash_find */ for(zend_hash_internal_pointer_reset(params_ht); @@ -147,51 +230,46 @@ } /* }}} */ -/** {{{ yaf_view_t * yaf_dispatcher_init_view(yaf_dispatcher_t *dispatcher, zval *tpl_dir, zval *options TSRMLS_DC) +/** {{{ static yaf_view_t * yaf_dispatcher_init_view(yaf_dispatcher_t *dispatcher, zval *tpl_dir, zval *options TSRMLS_DC) */ -yaf_view_t * yaf_dispatcher_init_view(yaf_dispatcher_t *dispatcher, zval *tpl_dir, zval *options TSRMLS_DC) { - yaf_view_t *view = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_VIEW); - + yaf_view_t * yaf_dispatcher_init_view(yaf_dispatcher_t *dispatcher, zval *tpl_dir, zval *options TSRMLS_DC) { + yaf_view_t *view = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_VIEW), 0 TSRMLS_CC); if (view && IS_OBJECT == Z_TYPE_P(view) && instanceof_function(Z_OBJCE_P(view), yaf_view_interface_ce TSRMLS_CC)) { return view; } view = yaf_view_instance(NULL, tpl_dir, options TSRMLS_CC); + zend_update_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_VIEW), view TSRMLS_CC); - yaf_update_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_VIEW, view); - return view; } /* }}} */ -/** {{{ inline void yaf_dispatcher_fix_default(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC) +/** {{{ static inline void yaf_dispatcher_fix_default(yaf_dispatcher_t *dispatcher, zend_class_entry *request_ce, yaf_request_t *request TSRMLS_DC) */ -inline void yaf_dispatcher_fix_default(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC) { - zval *module = NULL; - zval *controller = NULL; - zval *action = NULL; +static inline void yaf_dispatcher_fix_default(yaf_dispatcher_t *dispatcher, zend_class_entry *request_ce, yaf_request_t *request TSRMLS_DC) { + zval *module, *controller, *action; - module = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_MODULE); - controller = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_CONTROLLER); - action = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION); + module = zend_read_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), 0 TSRMLS_CC); + action = zend_read_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), 0 TSRMLS_CC); + controller = zend_read_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), 0 TSRMLS_CC); if (!module || Z_TYPE_P(module) != IS_STRING || !Z_STRLEN_P(module)) { - zval *default_module = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_MODULE); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_MODULE, default_module); + zval *default_module = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_MODULE), 0 TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), default_module TSRMLS_CC); } else { - ZVAL_STRINGL(module, zend_str_tolower_dup(Z_STRVAL_P(module), Z_STRLEN_P(module)), Z_STRLEN_P(module), FALSE); + ZVAL_STRINGL(module, zend_str_tolower_dup(Z_STRVAL_P(module), Z_STRLEN_P(module)), Z_STRLEN_P(module), 0); *(Z_STRVAL_P(module)) = toupper(*(Z_STRVAL_P(module))); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_MODULE, module); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), module TSRMLS_CC); } if (!controller || Z_TYPE_P(controller) != IS_STRING || !Z_STRLEN_P(controller)) { - zval *default_controller = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_CONTROLLER); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_CONTROLLER, default_controller); + zval *default_controller = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_CONTROLLER), 0 TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), default_controller TSRMLS_CC); } else { - char *p = NULL; - ZVAL_STRINGL(controller, zend_str_tolower_dup(Z_STRVAL_P(controller), Z_STRLEN_P(controller)), Z_STRLEN_P(controller), FALSE); - + char *p; + ZVAL_STRINGL(controller, zend_str_tolower_dup(Z_STRVAL_P(controller), Z_STRLEN_P(controller)), Z_STRLEN_P(controller), 0); p = Z_STRVAL_P(controller); /** @@ -213,35 +291,35 @@ p++; } - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_CONTROLLER, controller); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), controller TSRMLS_CC); } if (!action || Z_TYPE_P(action) != IS_STRING || !Z_STRLEN_P(action)) { - zval *default_action = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_ACTION); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION, default_action); + zval *default_action = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_ACTION), 0 TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), default_action TSRMLS_CC); } else { ZVAL_STRINGL(action, zend_str_tolower_dup(Z_STRVAL_P(action), Z_STRLEN_P(action)), Z_STRLEN_P(action), 0); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION, action); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), action TSRMLS_CC); } } /* }}} */ -/** {{{ boolean yaf_dispatcher_set_request(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC) +/** {{{ int yaf_dispatcher_set_request(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC) */ -boolean yaf_dispatcher_set_request(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC) { +int yaf_dispatcher_set_request(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC) { if (request) { yaf_update_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_REQUEST, request); - return TRUE; + return 1; } - return FALSE; + return 0; } /* }}} */ -/** {{{ zend_class_entry * yaf_dispatcher_get_controller(char *app_dir, char *module, char *controller, int len, boolean def_module TSRMLS_DC) +/** {{{ zend_class_entry * yaf_dispatcher_get_controller(char *app_dir, char *module, char *controller, int len, int def_module TSRMLS_DC) */ -zend_class_entry * yaf_dispatcher_get_controller(char *app_dir, char *module, char *controller, int len, boolean def_module TSRMLS_DC) { +zend_class_entry * yaf_dispatcher_get_controller(char *app_dir, char *module, char *controller, int len, int def_module TSRMLS_DC) { char *directory = NULL; int directory_len = 0; @@ -279,13 +357,13 @@ efree(class); efree(class_lowercase); efree(directory); - return FALSE; + return 0; } else if (!instanceof_function(*ce, yaf_controller_ce TSRMLS_CC)) { yaf_trigger_error(YAF_ERR_TYPE_ERROR, "controller must be an instance of %s", yaf_controller_ce->name); efree(class); efree(class_lowercase); efree(directory); - return FALSE; + return 0; } } @@ -300,26 +378,24 @@ } /* }}} */ -/** {{{ zend_class_entry * yaf_dispatcher_get_action(char *app_dir, yaf_controller_t *controller, char *module, boolean def_module, char *action, int len TSRMLS_DC) +/** {{{ zend_class_entry * yaf_dispatcher_get_action(char *app_dir, yaf_controller_t *controller, char *module, int def_module, char *action, int len TSRMLS_DC) */ -zend_class_entry * yaf_dispatcher_get_action(char *app_dir, yaf_controller_t *controller, char *module, boolean def_module, char *action, int len TSRMLS_DC) { - zval **ppaction = NULL; - zval *actions_map = yaf_read_property(controller, YAF_CONTROLLER_PROPERTY_NAME_ACTIONS); +zend_class_entry * yaf_dispatcher_get_action(char *app_dir, yaf_controller_t *controller, char *module, int def_module, char *action, int len TSRMLS_DC) { + zval **ppaction, *actions_map; + actions_map = zend_read_property(Z_OBJCE_P(controller), controller, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_ACTIONS), 0 TSRMLS_CC); if (IS_ARRAY == Z_TYPE_P(actions_map)) { if (zend_hash_find(Z_ARRVAL_P(actions_map), action, len + 1, (void **)&ppaction) == SUCCESS) { - char *action_path = NULL; - int action_path_len = 0; + char *action_path; + uint action_path_len; action_path_len = spprintf(&action_path, 0, "%s%c%s", app_dir, DEFAULT_SLASH, Z_STRVAL_PP(ppaction)); - if (yaf_loader_import(action_path, action_path_len, FALSE TSRMLS_CC)) { - zend_class_entry **ce = NULL; - char *class = NULL; - char *class_lowercase = NULL; - int class_len = 0; + if (yaf_loader_import(action_path, action_path_len, 0 TSRMLS_CC)) { + zend_class_entry **ce; + char *class, *class_lowercase; + uint class_len; + char *action_upper = estrndup(action, len); - char *action_upper = estrndup(action, len); - *(action_upper) = toupper(*action_upper); if (YAF_G(name_suffix)) { @@ -339,12 +415,12 @@ efree(class); return *ce; } else { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "action %s must extends from %s", class, yaf_action_ce->name); + yaf_trigger_error(YAF_ERR_TYPE_ERROR TSRMLS_CC, "Action %s must extends from %s", class, yaf_action_ce->name); efree(class); } } else { - yaf_trigger_error(YAF_ERR_NOTFOUND_ACTION, "could not find action %s in %s", class, action_path); + yaf_trigger_error(YAF_ERR_NOTFOUND_ACTION TSRMLS_CC, "Could not find action %s in %s", class, action_path); } efree(action_path); @@ -353,88 +429,81 @@ efree(class_lowercase); } else { - yaf_trigger_error(YAF_ERR_NOTFOUND_ACTION, "could not find action script %s", action_path); + yaf_trigger_error(YAF_ERR_NOTFOUND_ACTION TSRMLS_CC, "Could not find action script %s", action_path); efree(action_path); } } else { - yaf_trigger_error(YAF_ERR_NOTFOUND_ACTION, "there is no method %s%s in %s::$%s", + yaf_trigger_error(YAF_ERR_NOTFOUND_ACTION TSRMLS_CC, "There is no method %s%s in %s::$%s", action, "Action", Z_OBJCE_P(controller)->name, YAF_CONTROLLER_PROPERTY_NAME_ACTIONS); } } else { - yaf_trigger_error(YAF_ERR_NOTFOUND_ACTION, "there is no method %s%s in %s", action, "Action", Z_OBJCE_P(controller)->name); + yaf_trigger_error(YAF_ERR_NOTFOUND_ACTION TSRMLS_CC, "There is no method %s%s in %s", action, "Action", Z_OBJCE_P(controller)->name); } return NULL; } /* }}} */ -/** {{{ boolean yaf_dispatcher_handle(yaf_dispatcher_t *dispatcher, yaf_request_t *request, yaf_response_t *response, yaf_view_t *view TSRMLS_DC) +/** {{{ int yaf_dispatcher_handle(yaf_dispatcher_t *dispatcher, yaf_request_t *request, yaf_response_t *response, yaf_view_t *view TSRMLS_DC) */ -boolean yaf_dispatcher_handle(yaf_dispatcher_t *dispatcher, yaf_request_t *request, yaf_response_t *response, yaf_view_t *view TSRMLS_DC) { +int yaf_dispatcher_handle(yaf_dispatcher_t *dispatcher, yaf_request_t *request, yaf_response_t *response, yaf_view_t *view TSRMLS_DC) { + zend_class_entry *request_ce; char *app_dir = YAF_G(directory); - yaf_request_set_dispatched(request, TRUE TSRMLS_CC); + request_ce = Z_OBJCE_P(request); + yaf_request_set_dispatched(request_ce, request, 1 TSRMLS_CC); if (!app_dir) { - yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "%s requires %s(which set the application.directory) to be initialized first", + yaf_trigger_error(YAF_ERR_STARTUP_FAILED TSRMLS_CC, "%s requires %s(which set the application.directory) to be initialized first", yaf_dispatcher_ce->name, yaf_application_ce->name); - return FALSE; + return 0; } else { - boolean is_def_module = FALSE; - boolean is_def_ctr = FALSE; - zval *module = NULL; - zval *controller = NULL; - zend_class_entry *ce = NULL; - yaf_controller_t *executor = NULL; - zend_function *fptr = NULL; + int is_def_module = 0; + int is_def_ctr = 0; + zval *module, *controller, *dmodule, *dcontroller, *return_response, *instantly_flush; + zend_class_entry *ce; + yaf_controller_t *executor; + zend_function *fptr; - zval *dmodule = NULL; - zval *dcontroller = NULL; - zval *return_response = NULL; - zval *instantly_flush = NULL; + module = zend_read_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), 0 TSRMLS_CC); + controller = zend_read_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), 0 TSRMLS_CC); - module = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_MODULE); - controller = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_CONTROLLER); + dmodule = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_MODULE), 0 TSRMLS_CC); + dcontroller = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_CONTROLLER), 0 TSRMLS_CC); - dmodule = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_MODULE); - dcontroller = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_CONTROLLER); - if (Z_TYPE_P(module) != IS_STRING || !Z_STRLEN_P(module)) { - yaf_trigger_error(YAF_ERR_DISPATCH_FAILED, "unexcepted a empty module name"); - return FALSE; + yaf_trigger_error(YAF_ERR_DISPATCH_FAILED TSRMLS_CC, "Unexcepted a empty module name"); + return 0; } else if (!yaf_application_is_module_name(Z_STRVAL_P(module), Z_STRLEN_P(module) TSRMLS_CC)) { - yaf_trigger_error(YAF_ERR_NOTFOUND_MODULE, "there is no module %s", Z_STRVAL_P(module)); - return FALSE; + yaf_trigger_error(YAF_ERR_NOTFOUND_MODULE TSRMLS_CC, "There is no module %s", Z_STRVAL_P(module)); + return 0; } if (Z_TYPE_P(controller) != IS_STRING || !Z_STRLEN_P(controller)) { - yaf_trigger_error(YAF_ERR_DISPATCH_FAILED, "unexcepted a empty controller name"); - return FALSE; + yaf_trigger_error(YAF_ERR_DISPATCH_FAILED TSRMLS_CC, "Unexcepted a empty controller name"); + return 0; } if(strncasecmp(Z_STRVAL_P(dmodule), Z_STRVAL_P(module), Z_STRLEN_P(module)) == 0) { - is_def_module = TRUE; + is_def_module = 1; } if (strncasecmp(Z_STRVAL_P(dcontroller), Z_STRVAL_P(controller), Z_STRLEN_P(controller)) == 0) { - is_def_ctr = TRUE; + is_def_ctr = 1; } ce = yaf_dispatcher_get_controller(app_dir, Z_STRVAL_P(module), Z_STRVAL_P(controller), Z_STRLEN_P(controller), is_def_module TSRMLS_CC); if (!ce) { - return FALSE; + return 0; } else { - zval *action = NULL; - char *action_lower = NULL; - char *func_name = NULL; - int func_name_len = 0; - zval *ret = NULL; - zval *view_dir = NULL; - zval *render = NULL; + zval *action, *ret, *view_dir, *render; + char *action_lower, *func_name; + uint func_name_len; + zend_class_entry *view_ce; - yaf_controller_t *icontroller = NULL; + yaf_controller_t *icontroller; MAKE_STD_ZVAL(icontroller); object_init_ex(icontroller, ce); @@ -447,12 +516,12 @@ if (zend_call_method_with_2_params(&exec_ctr, *ce , &constructor, NULL, &ret, request, response) == NULL) { yaf_trigger_error(YAF_ERR_CALL_FAILED, "function call for %s::__construct failed", (*ce)->name); - return FALSE; + return 0; } } } while(0); */ - yaf_controller_construct(icontroller, request, response, view, NULL TSRMLS_CC); + yaf_controller_construct(ce, icontroller, request, response, view, NULL TSRMLS_CC); MAKE_STD_ZVAL(view_dir); Z_TYPE_P(view_dir) = IS_STRING; @@ -465,17 +534,17 @@ } /** tell the view engine where to find templates */ - if (Z_OBJCE_P(view) == yaf_view_simple_ce) { - yaf_update_property(view, YAF_VIEW_PROPERTY_NAME_TPLDIR, view_dir); + if ((view_ce = Z_OBJCE_P(view)) == yaf_view_simple_ce) { + zend_update_property(view_ce, view, ZEND_STRL(YAF_VIEW_PROPERTY_NAME_TPLDIR), view_dir TSRMLS_CC); } else { - zend_call_method_with_1_params(&view, Z_OBJCE_P(view), NULL, "setscriptpath", NULL, view_dir); + zend_call_method_with_1_params(&view, view_ce, NULL, "setscriptpath", NULL, view_dir); } zval_ptr_dtor(&view_dir); - yaf_update_property(icontroller, YAF_CONTROLLER_PROPERTY_NAME_NAME, controller); + zend_update_property(ce, icontroller, ZEND_STRL(YAF_CONTROLLER_PROPERTY_NAME_NAME), controller TSRMLS_CC); - action = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION); + action = zend_read_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), 0 TSRMLS_CC); action_lower = zend_str_tolower_dup(Z_STRVAL_P(action), Z_STRLEN_P(action)); /* cause the action might call the forward to override the old action */ @@ -485,20 +554,20 @@ efree(action_lower); if (zend_hash_find(&((ce)->function_table), func_name, func_name_len + 1, (void **)&fptr) == SUCCESS) { - zval ***call_args = NULL; - uint count = 0; + zval ***call_args; + uint count; executor = icontroller; if (fptr->common.num_args) { - zval *method_name = NULL; + zval *method_name; - yaf_dispatcher_get_call_parmaters(request, fptr, &call_args, &count TSRMLS_CC); + yaf_dispatcher_get_call_parmaters(request_ce, request, fptr, &call_args, &count TSRMLS_CC); MAKE_STD_ZVAL(method_name); - ZVAL_STRINGL(method_name, func_name, func_name_len, FALSE); + ZVAL_STRINGL(method_name, func_name, func_name_len, 0); call_user_function_ex(&(ce)->function_table, &icontroller, - method_name, &ret, count, call_args, TRUE, NULL TSRMLS_CC); + method_name, &ret, count, call_args, 1, NULL TSRMLS_CC); efree(method_name); efree(call_args); @@ -515,11 +584,10 @@ zval_dtor(icontroller); efree(icontroller); - return FALSE; + return 0; } } else { - ce = yaf_dispatcher_get_action(app_dir, icontroller, Z_STRVAL_P(module), is_def_module, Z_STRVAL_P(action), Z_STRLEN_P(action) TSRMLS_CC); zval_dtor(icontroller); efree(icontroller); @@ -527,14 +595,14 @@ if (ce) { if (zend_hash_find(&(ce)->function_table, YAF_ACTION_EXECUTOR_NAME, sizeof(YAF_ACTION_EXECUTOR_NAME), (void **)&fptr) == SUCCESS) { - zval ***call_args = NULL; - uint count = 0; - yaf_action_t *iaction = NULL; + zval ***call_args; + uint count; + yaf_action_t *iaction; MAKE_STD_ZVAL(iaction); object_init_ex(iaction, ce); - yaf_controller_construct(iaction, request, response, view, NULL TSRMLS_CC); + yaf_controller_construct(ce, iaction, request, response, view, NULL TSRMLS_CC); executor = iaction; yaf_update_property(iaction, YAF_CONTROLLER_PROPERTY_NAME_NAME, controller); @@ -542,12 +610,12 @@ if (fptr->common.num_args) { zval *method_name = NULL; - yaf_dispatcher_get_call_parmaters(request, fptr, &call_args, &count TSRMLS_CC); + yaf_dispatcher_get_call_parmaters(request_ce, request, fptr, &call_args, &count TSRMLS_CC); MAKE_STD_ZVAL(method_name); - ZVAL_STRINGL(method_name, YAF_ACTION_EXECUTOR_NAME, sizeof(YAF_ACTION_EXECUTOR_NAME) - 1, FALSE); + ZVAL_STRINGL(method_name, YAF_ACTION_EXECUTOR_NAME, sizeof(YAF_ACTION_EXECUTOR_NAME) - 1, 0); call_user_function_ex(&(ce)->function_table, &iaction, method_name, - &ret, count, call_args, TRUE, NULL TSRMLS_CC); + &ret, count, call_args, 1, NULL TSRMLS_CC); efree(method_name); efree(call_args); @@ -562,23 +630,23 @@ zval_dtor(iaction); efree(iaction); - return FALSE; + return 0; } } else { /** should never reached here */ - yaf_trigger_error(YAF_ERR_NOTFOUND_ACTION, "could not find execute method in %s", ce->name); - return FALSE; + yaf_trigger_error(YAF_ERR_NOTFOUND_ACTION TSRMLS_CC, "Could not find execute method in %s", ce->name); + return 0; } } else { Z_DELREF_P(action); - return FALSE; + return 0; } } - render = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_RENDER); - return_response = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_RETURN); - instantly_flush = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_FLUSH); + render = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_RENDER), 0 TSRMLS_CC); + return_response = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_RETURN), 0 TSRMLS_CC); + instantly_flush = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_FLUSH), 0 TSRMLS_CC); if (executor && Z_BVAL_P(render)) { MAKE_STD_ZVAL(ret); @@ -590,11 +658,11 @@ efree(executor); if (ret && Z_TYPE_P(ret) == IS_STRING && Z_STRLEN_P(ret)) { - yaf_response_alter_body(response, NULL, 0, Z_STRVAL_P(ret), Z_STRLEN_P(ret), FALSE TSRMLS_CC); + yaf_response_alter_body(response, NULL, 0, Z_STRVAL_P(ret), Z_STRLEN_P(ret), 0 TSRMLS_CC); } else { efree(ret); Z_DELREF_P(action); - return FALSE; + return 0; } } else { zend_call_method_with_1_params(&executor, ce, NULL, "display", &ret, action); @@ -604,7 +672,7 @@ if (!ret || (Z_TYPE_P(ret) == IS_BOOL && !Z_BVAL_P(ret))) { efree(ret); Z_DELREF_P(action); - return FALSE; + return 0; } } @@ -613,55 +681,54 @@ Z_DELREF_P(action); efree(ret); - return TRUE; + return 1; } } - return FALSE; + return 0; } /* }}} */ /** {{{ void yaf_dispatcher_exception_handler(yaf_dispatcher_t *dispatcher, yaf_request_t *request, yaf_response_t *response TSRMLS_DC) */ void yaf_dispatcher_exception_handler(yaf_dispatcher_t *dispatcher, yaf_request_t *request, yaf_response_t *response TSRMLS_DC) { - zval *module = NULL; - zval *controller = NULL; - zval *action = NULL; - zval *exception = NULL; - yaf_view_t *view = NULL; + zval *module, *controller, *action, *exception; + yaf_view_t *view; + zend_class_entry *request_ce; if (YAF_G(in_exception) || !EG(exception)) { return; } - YAF_G(in_exception) = TRUE; + YAF_G(in_exception) = 1; MAKE_STD_ZVAL(controller); MAKE_STD_ZVAL(action); - module = yaf_read_property(request, YAF_REQUEST_PROPERTY_NAME_MODULE); + request_ce = Z_OBJCE_P(request); + module = zend_read_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), 0 TSRMLS_CC); if (!module || Z_TYPE_P(module) != IS_STRING || !Z_STRLEN_P(module)) { - module = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_MODULE); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_MODULE, module); + module = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_MODULE), 0 TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), module TSRMLS_CC); } - ZVAL_STRING(controller, YAF_ERROR_CONTROLLER, TRUE); - ZVAL_STRING(action, YAF_ERROR_ACTION, TRUE); + ZVAL_STRING(controller, YAF_ERROR_CONTROLLER, 1); + ZVAL_STRING(action, YAF_ERROR_ACTION, 1); exception = EG(exception); EG(exception) = NULL; - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_CONTROLLER, controller); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_ACTION, action); - yaf_update_property(request, YAF_REQUEST_PROPERTY_NAME_EXCEPTION, exception); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), controller TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), action TSRMLS_CC); + zend_update_property(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_EXCEPTION), exception TSRMLS_CC); Z_DELREF_P(controller); Z_DELREF_P(action); /** use $request->getException() instand of */ yaf_request_set_params_single(request, YAF_STRL("exception"), exception TSRMLS_CC); - yaf_request_set_dispatched(request, FALSE TSRMLS_CC); + yaf_request_set_dispatched(request_ce, request, 0 TSRMLS_CC); view = yaf_dispatcher_init_view(dispatcher, NULL, NULL TSRMLS_CC); @@ -675,69 +742,67 @@ } /* }}} */ -/** {{{ boolean yaf_dispatcher_route(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC) +/** {{{ int yaf_dispatcher_route(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC) */ -boolean yaf_dispatcher_route(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC) { - yaf_router_t *router = NULL; - - router = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_ROUTER); - - if (IS_OBJECT == Z_TYPE_P(router) && Z_OBJCE_P(router) == yaf_router_ce) { - /* use buildin router */ - if (!yaf_router_route(router, request TSRMLS_CC)) { - return FALSE; +int yaf_dispatcher_route(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC) { + zend_class_entry *router_ce; + yaf_router_t *router = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_ROUTER), 0 TSRMLS_CC); + if (IS_OBJECT == Z_TYPE_P(router)) { + if ((router_ce = Z_OBJCE_P(router)) == yaf_router_ce) { + /* use buildin router */ + if (!yaf_router_route(router, request TSRMLS_CC)) { + return 0; + } + } else { + /* user custom router */ + zval *ret = zend_call_method_with_1_params(&router, router_ce, NULL, "route", &ret, request); + if (Z_TYPE_P(ret) == IS_BOOL && Z_BVAL_P(ret) == 0) { + yaf_trigger_error(YAF_ERR_ROUTE_FAILED TSRMLS_CC, "Calling for %s::route failed", router_ce->name); + return 0; + } } - } else { - /* user custom router */ - zval *ret = NULL; - ret = zend_call_method_with_1_params(&router, Z_OBJCE_P(router), NULL, "route", &ret, request); - - if (Z_TYPE_P(ret) == IS_BOOL - && Z_BVAL_P(ret) == 0) { - yaf_trigger_error(YAF_ERR_ROUTE_FAILED, "calling for %s::route failed", Z_OBJCE_P(router)->name); - return FALSE; - } + return 1; } - - return TRUE; + return 0; } /* }}} */ /** {{{ yaf_response_t * yaf_dispatcher_dispatch(yaf_dispatcher_t *dispatcher TSRMLS_DC) */ yaf_response_t * yaf_dispatcher_dispatch(yaf_dispatcher_t *dispatcher TSRMLS_DC) { - uint nesting = YAF_G(forward_limit); - yaf_response_t *response = NULL; - yaf_request_t *request = NULL; - zval *return_response = NULL; - zval *plugins = NULL; - zval *view = NULL; + zval *return_response, *plugins, *view; + uint nesting = YAF_G(forward_limit); + zend_class_entry *request_ce; + yaf_response_t *response; + yaf_request_t *request; + response = yaf_response_instance(NULL, sapi_module.name TSRMLS_CC); - request = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_REQUEST); - plugins = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_PLUGINS); + request = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_REQUEST), 0 TSRMLS_CC); + plugins = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_PLUGINS), 0 TSRMLS_CC); - if (!request - || IS_OBJECT != Z_TYPE_P(request)) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s::dispatch expects a %s instance", yaf_dispatcher_ce->name, yaf_request_ce->name); + if (!request || IS_OBJECT != Z_TYPE_P(request)) { + yaf_trigger_error(YAF_ERR_TYPE_ERROR TSRMLS_CC, "%s::dispatch expects a %s instance", yaf_dispatcher_ce->name, yaf_request_ce->name); return NULL; } + request_ce = Z_OBJCE_P(request); + /* route request */ - if (!yaf_request_is_routed(request TSRMLS_CC)) { + if (!yaf_request_is_routed(request_ce, request TSRMLS_CC)) { YAF_PLUGIN_HANDLE(plugins, YAF_PLUGIN_HOOK_ROUTESTARTUP, request, response); YAF_EXCEPTION_HANDLE(dispatcher, request, response); - if (yaf_dispatcher_route(dispatcher, request TSRMLS_CC) == FAILURE) { - yaf_trigger_error(YAF_ERR_ROUTE_FAILED, "route request failed"); + if (!yaf_dispatcher_route(dispatcher, request TSRMLS_CC)) { + yaf_trigger_error(YAF_ERR_ROUTE_FAILED TSRMLS_CC, "Routing request failed"); YAF_EXCEPTION_HANDLE_NORET(dispatcher, request, response); return NULL; } YAF_PLUGIN_HANDLE(plugins, YAF_PLUGIN_HOOK_ROUTESHUTDOWN, request, response); YAF_EXCEPTION_HANDLE(dispatcher, request, response); - (void)yaf_request_set_routed(request, TRUE TSRMLS_CC); + (void)yaf_request_set_routed(request_ce, request, 1 TSRMLS_CC); } - yaf_dispatcher_fix_default(dispatcher, request TSRMLS_CC); + yaf_dispatcher_fix_default(dispatcher, request_ce, request TSRMLS_CC); YAF_PLUGIN_HANDLE(plugins, YAF_PLUGIN_HOOK_LOOPSTARTUP, request, response); YAF_EXCEPTION_HANDLE(dispatcher, request, response); @@ -750,22 +815,21 @@ YAF_EXCEPTION_HANDLE(dispatcher, request, response); return NULL; } - yaf_dispatcher_fix_default(dispatcher, request TSRMLS_CC); + yaf_dispatcher_fix_default(dispatcher, request_ce, request TSRMLS_CC); YAF_PLUGIN_HANDLE(plugins, YAF_PLUGIN_HOOK_POSTDISPATCH, request, response); YAF_EXCEPTION_HANDLE(dispatcher, request, response); - } while (--nesting > 0 && !yaf_request_is_dispatched(request TSRMLS_CC)); + } while (--nesting > 0 && !yaf_request_is_dispatched(request_ce, request TSRMLS_CC)); YAF_PLUGIN_HANDLE(plugins, YAF_PLUGIN_HOOK_LOOPSHUTDOWN, request, response); YAF_EXCEPTION_HANDLE(dispatcher, request, response); - if (0 == nesting - && !yaf_request_is_dispatched(request TSRMLS_CC)) { - yaf_trigger_error(YAF_ERR_DISPATCH_FAILED, "reache the max dispatch nesting %ld", YAF_G(forward_limit)); + if (0 == nesting && !yaf_request_is_dispatched(request_ce, request TSRMLS_CC)) { + yaf_trigger_error(YAF_ERR_DISPATCH_FAILED TSRMLS_CC, "The max dispatch nesting %ld was reached", YAF_G(forward_limit)); YAF_EXCEPTION_HANDLE_NORET(dispatcher, request, response); return NULL; } - return_response = yaf_read_property(dispatcher, YAF_DISPATCHER_PROPERTY_NAME_RETURN); + return_response = zend_read_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_RETURN), 0 TSRMLS_CC); if (!Z_BVAL_P(return_response)) { (void)yaf_response_send(response TSRMLS_CC); @@ -797,13 +861,12 @@ /** {{{ proto public Yaf_Dispatcher::setErrorHandler(string $callbacak[, int $error_types = E_ALL | E_STRICT ] ) */ PHP_METHOD(yaf_dispatcher, setErrorHandler) { - zval *callback = NULL; - zval *error_type = NULL; + zval *callback, *error_type = NULL; zval *params[2] = {0}; zval function = {{0}, 0}; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|z", &callback, &error_type) == FAILURE) { - WRONG_PARAM_COUNT; + return; } params[0] = callback; @@ -813,7 +876,7 @@ ZVAL_STRING(&function, "set_error_handler", 0); if (call_user_function(EG(function_table), NULL, &function, return_value, ZEND_NUM_ARGS(), params TSRMLS_CC) == FAILURE) { - yaf_trigger_error(YAF_ERR_ERROR, "call to set_error_handler failed"); + yaf_trigger_error(YAF_ERR_ERROR TSRMLS_CC, "call to set_error_handler failed"); } } /* }}} */ @@ -822,8 +885,8 @@ */ PHP_METHOD(yaf_dispatcher, disableView) { yaf_dispatcher_t *self = getThis(); - zend_update_property_bool(Z_OBJCE_P(self), self, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_RENDER), 0 TSRMLS_CC); - RETURN_TRUE; + zend_update_property_bool(yaf_dispatcher_ce, self, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_RENDER), 0 TSRMLS_CC); + RETURN_ZVAL(self, 1, 0); } /* }}} */ @@ -831,38 +894,38 @@ */ PHP_METHOD(yaf_dispatcher, enableView) { yaf_dispatcher_t *self = getThis(); - zend_update_property_bool(Z_OBJCE_P(self), self, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_RENDER), 1 TSRMLS_CC); - RETURN_TRUE; + zend_update_property_bool(yaf_dispatcher_ce, self, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_RENDER), 1 TSRMLS_CC); + RETURN_ZVAL(self, 1, 0); } /* }}} */ /** {{{ proto public Yaf_Dispatcher::returnResponse() */ PHP_METHOD(yaf_dispatcher, returnResponse) { + long auto_response; yaf_dispatcher_t *self = getThis(); - long auto_response = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &auto_response) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - zend_update_property_bool(Z_OBJCE_P(self), self, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_RETURN), (auto_response)? TRUE:FALSE TSRMLS_CC); + zend_update_property_bool(yaf_dispatcher_ce, self, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_RETURN), (auto_response)? 1:0 TSRMLS_CC); RETURN_ZVAL(self, 1, 0); } /* }}} */ -/** {{{ proto public Yaf_Dispatcher::flushInstantly() +/** {{{ proto public Yaf_Dispatcher::flushInstantly(bool $flag) */ PHP_METHOD(yaf_dispatcher, flushInstantly) { + long instantly_flush; yaf_dispatcher_t *self = getThis(); - long instantly_flush = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &instantly_flush) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - zend_update_property_bool(Z_OBJCE_P(self), self, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_FLUSH), (instantly_flush)? TRUE:FALSE TSRMLS_CC); + zend_update_property_bool(yaf_dispatcher_ce, self, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_FLUSH), (instantly_flush)? 1:0 TSRMLS_CC); RETURN_ZVAL(self, 1, 0); } @@ -871,21 +934,20 @@ /** {{{ proto public Yaf_Dispatcher::registerPlugin(Yaf_Plugin_Abstract $plugin) */ PHP_METHOD(yaf_dispatcher, registerPlugin) { - zval * plugin = NULL; - zval * plugins = NULL; - yaf_dispatcher_t *self = getThis(); + zval *plugin, *plugins; + yaf_dispatcher_t *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &plugin) == FAILURE) { - WRONG_PARAM_COUNT; + return; } if (Z_TYPE_P(plugin) != IS_OBJECT || !instanceof_function(Z_OBJCE_P(plugin), yaf_plugin_ce TSRMLS_CC)) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s::registerPlugin expects a %s instance", yaf_dispatcher_ce->name, yaf_plugin_ce->name); + yaf_trigger_error(YAF_ERR_TYPE_ERROR TSRMLS_CC, "%s::registerPlugin expects a %s instance", yaf_dispatcher_ce->name, yaf_plugin_ce->name); RETURN_FALSE; } - plugins = yaf_read_property(self, YAF_DISPATCHER_PROPERTY_NAME_PLUGINS); + plugins = zend_read_property(yaf_dispatcher_ce, self, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_PLUGINS), 0 TSRMLS_CC); Z_ADDREF_P(plugin); add_next_index_zval(plugins, plugin); @@ -897,16 +959,15 @@ /** {{{ proto public Yaf_Dispatcher::setRequest(Yaf_Request_Abstract $request) */ PHP_METHOD(yaf_dispatcher, setRequest) { - yaf_request_t *request = NULL; - yaf_dispatcher_t *self = NULL; + yaf_request_t *request; + yaf_dispatcher_t *self; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &request) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - if (!request - || IS_OBJECT != Z_TYPE_P(request)) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s::dispatch expects a %s instance", yaf_dispatcher_ce->name, yaf_request_ce->name); + if (!request || IS_OBJECT != Z_TYPE_P(request)) { + yaf_trigger_error(YAF_ERR_TYPE_ERROR TSRMLS_CC, "%s::dispatch expects a %s instance", yaf_dispatcher_ce->name, yaf_request_ce->name); RETURN_FALSE; } @@ -923,8 +984,7 @@ /** {{{ proto public Yaf_Dispatcher::getInstance(void) */ PHP_METHOD(yaf_dispatcher, getInstance) { - yaf_dispatcher_t *dispatcher = NULL; - dispatcher = yaf_dispatcher_instance(NULL TSRMLS_CC); + yaf_dispatcher_t *dispatcher = yaf_dispatcher_instance(NULL TSRMLS_CC); RETURN_ZVAL(dispatcher, 1, 0); } /* }}} */ @@ -932,7 +992,7 @@ /** {{{ proto public Yaf_Dispatcher::getRouter(void) */ PHP_METHOD(yaf_dispatcher, getRouter) { - yaf_router_t *router = yaf_read_property(getThis(), YAF_DISPATCHER_PROPERTY_NAME_ROUTER); + yaf_router_t *router = zend_read_property(yaf_dispatcher_ce, getThis(), ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_ROUTER), 0 TSRMLS_CC); RETURN_ZVAL(router, 1, 0); } /* }}} */ @@ -940,7 +1000,7 @@ /** {{{ proto public Yaf_Dispatcher::getRequest(void) */ PHP_METHOD(yaf_dispatcher, getRequest) { - yaf_request_t *request = yaf_read_property(getThis(), YAF_DISPATCHER_PROPERTY_NAME_REQUEST); + yaf_request_t *request = zend_read_property(yaf_dispatcher_ce, getThis(), ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_REQUEST), 0 TSRMLS_CC); RETURN_ZVAL(request, 1, 0); } /* }}} */ @@ -955,16 +1015,16 @@ /** {{{ proto public Yaf_Dispatcher::dispatch(yaf_request_t $request) */ PHP_METHOD(yaf_dispatcher, dispatch) { - yaf_request_t *request = NULL; - yaf_response_t *response = NULL; - yaf_dispatcher_t *self = NULL; + yaf_request_t *request; + yaf_response_t *response; + yaf_dispatcher_t *self; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &request) == FAILURE) { - WRONG_PARAM_COUNT; + return; } self = getThis(); - yaf_update_property(self, YAF_DISPATCHER_PROPERTY_NAME_REQUEST, request); + zend_update_property(yaf_dispatcher_ce, self, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_REQUEST), request TSRMLS_CC); if ((response = yaf_dispatcher_dispatch(self TSRMLS_CC))) { RETURN_ZVAL(response, 1, 0); } @@ -976,15 +1036,11 @@ /** {{{ proto public Yaf_Dispatcher::throwException(bool $flag=0) */ PHP_METHOD(yaf_dispatcher, throwException) { - int flag = -1; + int flag; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &flag) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - if (flag == -1) { - RETURN_FALSE; - } - YAF_G(throw_exception) = flag? 1: 0; RETURN_ZVAL(getThis(), 1, 0); } @@ -993,33 +1049,29 @@ /** {{{ proto public Yaf_Dispatcher::catchException(bool $flag=0) */ PHP_METHOD(yaf_dispatcher, catchException) { - int flag = -1; + int flag; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &flag) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - if (flag == -1) { - RETURN_FALSE; - } - YAF_G(catch_exception) = flag? 1: 0; RETURN_ZVAL(getThis(), 1, 0); } /* }}} */ -/** {{{ proto public Yaf_Dispatcher::autoRender(boolean $flag) +/** {{{ proto public Yaf_Dispatcher::autoRender(int $flag) */ PHP_METHOD(yaf_dispatcher, autoRender) { - long flag = 0; + long flag; yaf_dispatcher_t *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &flag) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - zend_update_property_bool(Z_OBJCE_P(self), self, YAF_STRL(YAF_DISPATCHER_PROPERTY_NAME_RENDER), flag? 1 : 0 TSRMLS_CC); + zend_update_property_bool(yaf_dispatcher_ce, self, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_RENDER), flag? 1 : 0 TSRMLS_CC); - RETURN_ZVAL(self, 1, 0); + RETURN_ZVAL(self, 1, 0); } /* }}} */ @@ -1035,7 +1087,6 @@ } view = yaf_dispatcher_init_view(getThis(), tpl_dir, options TSRMLS_CC); - if (view) { RETURN_ZVAL(view, 1, 0); } @@ -1044,21 +1095,19 @@ } /* }}} */ -/** {{{ proto public Yaf_Dispatcher::setView(void) +/** {{{ proto public Yaf_Dispatcher::setView(Yaf_View_Interface $view) */ PHP_METHOD(yaf_dispatcher, setView) { - yaf_view_t *view = NULL; - yaf_dispatcher_t *self = NULL; + yaf_view_t *view; + yaf_dispatcher_t *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &view) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - self = getThis(); if (view && IS_OBJECT == Z_TYPE_P(view) && instanceof_function(Z_OBJCE_P(view), yaf_view_interface_ce TSRMLS_CC)) { - - yaf_update_property(self, YAF_DISPATCHER_PROPERTY_NAME_VIEW, view); + zend_update_property(yaf_dispatcher_ce, self, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_VIEW), view TSRMLS_CC); RETURN_ZVAL(self, 1, 0); } @@ -1069,13 +1118,12 @@ /** {{{ proto public Yaf_Dispatcher::setAppDirectory(string $directory) */ PHP_METHOD(yaf_dispatcher, setAppDirectory) { - char *directory = NULL; - int len = 0; - + int len; + char *directory; yaf_dispatcher_t *self = getThis(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &directory, &len) == FAILURE || !len) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &directory, &len) == FAILURE) { + return; } if (!len || !IS_ABSOLUTE_PATH(directory, len)) { @@ -1093,20 +1141,20 @@ /** {{{ proto public Yaf_Dispatcher::setDefaultModule(string $name) */ PHP_METHOD(yaf_dispatcher, setDefaultModule) { - zval *module = NULL; - zval *self = getThis(); + zval *module; + zval *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &module) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - if (module && IS_STRING == Z_TYPE_P(module) && Z_STRLEN_P(module) + if (IS_STRING == Z_TYPE_P(module) && Z_STRLEN_P(module) && yaf_application_is_module_name(Z_STRVAL_P(module), Z_STRLEN_P(module) TSRMLS_CC)) { - zval *module_std = NULL; + zval *module_std; MAKE_STD_ZVAL(module_std); - ZVAL_STRING(module_std, zend_str_tolower_dup(Z_STRVAL_P(module), Z_STRLEN_P(module)), FALSE); + ZVAL_STRING(module_std, zend_str_tolower_dup(Z_STRVAL_P(module), Z_STRLEN_P(module)), 0); *Z_STRVAL_P(module_std) = toupper(*Z_STRVAL_P(module_std)); - yaf_update_property(self, YAF_DISPATCHER_PROPERTY_NAME_MODULE, module_std); + zend_update_property(yaf_dispatcher_ce, self, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_MODULE), module_std TSRMLS_CC); RETURN_ZVAL(self, 1, 0); } @@ -1118,19 +1166,19 @@ /** {{{ proto public Yaf_Dispatcher::setDefaultController(string $name) */ PHP_METHOD(yaf_dispatcher, setDefaultController) { - zval *controller = NULL; - zval *self = getThis(); + zval *controller; + zval *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &controller) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - if (controller && IS_STRING == Z_TYPE_P(controller) && Z_STRLEN_P(controller)) { - zval *controller_std = NULL; + if (IS_STRING == Z_TYPE_P(controller) && Z_STRLEN_P(controller)) { + zval *controller_std; MAKE_STD_ZVAL(controller_std); - ZVAL_STRING(controller_std, zend_str_tolower_dup(Z_STRVAL_P(controller), Z_STRLEN_P(controller)), FALSE); + ZVAL_STRING(controller_std, zend_str_tolower_dup(Z_STRVAL_P(controller), Z_STRLEN_P(controller)), 0); *Z_STRVAL_P(controller_std) = toupper(*Z_STRVAL_P(controller_std)); - yaf_update_property(self, YAF_DISPATCHER_PROPERTY_NAME_CONTROLLER, controller_std); + zend_update_property(yaf_dispatcher_ce, self, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_CONTROLLER), controller_std TSRMLS_CC); RETURN_ZVAL(self, 1, 0); } @@ -1142,18 +1190,18 @@ /** {{{ proto public Yaf_Dispatcher::setDefaultAction(string $name) */ PHP_METHOD(yaf_dispatcher, setDefaultAction) { - zval *action = NULL; - zval *self = getThis(); + zval *action; + zval *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &action) == FAILURE) { - WRONG_PARAM_COUNT; + return; } if (action && IS_STRING == Z_TYPE_P(action) && Z_STRLEN_P(action)) { - zval *action_lower = NULL; + zval *action_lower; MAKE_STD_ZVAL(action_lower); - ZVAL_STRING(action_lower, zend_str_tolower_dup(Z_STRVAL_P(action), Z_STRLEN_P(action)), FALSE); - yaf_update_property(self, YAF_DISPATCHER_PROPERTY_NAME_ACTION, action_lower); + ZVAL_STRING(action_lower, zend_str_tolower_dup(Z_STRVAL_P(action), Z_STRLEN_P(action)), 0); + zend_update_property(yaf_dispatcher_ce, self, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_ACTION), action_lower TSRMLS_CC); RETURN_ZVAL(self, 1, 0); } @@ -1177,31 +1225,31 @@ /** {{{ yaf_dispatcher_methods */ zend_function_entry yaf_dispatcher_methods[] = { - PHP_ME(yaf_dispatcher, __construct, NULL, ZEND_ACC_PRIVATE|ZEND_ACC_CTOR) + PHP_ME(yaf_dispatcher, __construct, NULL, ZEND_ACC_PRIVATE|ZEND_ACC_CTOR) PHP_ME(yaf_dispatcher, __clone, NULL, ZEND_ACC_PRIVATE|ZEND_ACC_CLONE) PHP_ME(yaf_dispatcher, __sleep, NULL, ZEND_ACC_PRIVATE) - PHP_ME(yaf_dispatcher, __wakeup, NULL, ZEND_ACC_PRIVATE) - PHP_ME(yaf_dispatcher, enableView, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, disableView, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, initView, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, setView, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, setRequest, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, getApplication, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, getRouter, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, getRequest, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, setErrorHandler, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, setAppDirectory, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, setDefaultModule, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, setDefaultController, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, setDefaultAction, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, returnResponse, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, autoRender, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, flushInstantly, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, getInstance, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) - PHP_ME(yaf_dispatcher, dispatch, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, throwException, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, catchException, NULL, ZEND_ACC_PUBLIC) - PHP_ME(yaf_dispatcher, registerPlugin, NULL, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, __wakeup, NULL, ZEND_ACC_PRIVATE) + PHP_ME(yaf_dispatcher, enableView, yaf_dispatcher_void_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, disableView, yaf_dispatcher_void_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, initView, yaf_dispatcher_initview_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, setView, yaf_dispatcher_setview_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, setRequest, yaf_dispatcher_setrequest_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, getApplication, yaf_dispatcher_void_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, getRouter, yaf_dispatcher_void_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, getRequest, yaf_dispatcher_void_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, setErrorHandler, yaf_dispatcher_seterrhdler_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, setAppDirectory, yaf_dispatcher_setappdir_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, setDefaultModule, yaf_dispatcher_setmodule_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, setDefaultController,yaf_dispatcher_setctrl_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, setDefaultAction, yaf_dispatcher_setaction_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, returnResponse, yaf_dispatcher_returnresp_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, autoRender, yaf_dispatcher_autorender_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, flushInstantly, yaf_dispatcher_flush_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, getInstance, yaf_dispatcher_void_arginfo, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_ME(yaf_dispatcher, dispatch, yaf_dispatcher_dispatch_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, throwException, yaf_dispatcher_throwex_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, catchException, yaf_dispatcher_catchex_arginfo, ZEND_ACC_PUBLIC) + PHP_ME(yaf_dispatcher, registerPlugin, yaf_dispatcher_regplugin_arginfo, ZEND_ACC_PUBLIC) {NULL, NULL, NULL} }; /* }}} */ Modified: pecl/yaf/trunk/yaf_dispatcher.h =================================================================== --- pecl/yaf/trunk/yaf_dispatcher.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_dispatcher.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -18,7 +18,7 @@ #ifndef PHP_YAF_DISPATCHER_H #define PHP_YAF_DISPATCHER_H -#define YAF_DISPATCHER_PROPERTY_NAME_REQUEST "_request" +#define YAF_DISPATCHER_PROPERTY_NAME_REQUEST "_request" #define YAF_DISPATCHER_PROPERTY_NAME_VIEW "_view" #define YAF_DISPATCHER_PROPERTY_NAME_ROUTER "_router" #define YAF_DISPATCHER_PROPERTY_NAME_RESPONSE "_response" @@ -32,8 +32,8 @@ #define YAF_DISPATCHER_PROPERTY_NAME_CONTROLLER "_default_controller" #define YAF_DISPATCHER_PROPERTY_NAME_ACTION "_default_action" -#define YAF_ERROR_CONTROLLER "Error" -#define YAF_ERROR_ACTION "error" +#define YAF_ERROR_CONTROLLER "Error" +#define YAF_ERROR_ACTION "error" #define YAF_DISPATCHER_PROPERTY_NAME_PLUGINS "_plugins" @@ -65,8 +65,7 @@ yaf_dispatcher_t * yaf_dispatcher_instance(yaf_dispatcher_t *this_ptr TSRMLS_DC); yaf_response_t * yaf_dispatcher_dispatch(yaf_dispatcher_t *dispatcher TSRMLS_DC); -boolean yaf_dispatcher_set_request(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC); -yaf_view_t * yaf_dispatcher_init_view(yaf_dispatcher_t *dispatcher, zval *tpl_dir, zval *options TSRMLS_DC); +int yaf_dispatcher_set_request(yaf_dispatcher_t *dispatcher, yaf_request_t *request TSRMLS_DC); PHP_METHOD(yaf_application, app); PHP_FUNCTION(set_error_handler); Modified: pecl/yaf/trunk/yaf_exception.c =================================================================== --- pecl/yaf/trunk/yaf_exception.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_exception.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -38,6 +38,23 @@ static zend_class_entry * yaf_buildin_exceptions[YAF_MAX_BUILDIN_EXCEPTION]; +static inline void yaf_trigger_error(int type TSRMLS_DC, char *format, ...) { + va_list args; + + if (YAF_G(throw_exception)) { + char *message; + va_start(args, format); + vspprintf(&message, 0, format, args); + va_end(args); + yaf_throw_exception(type, message TSRMLS_CC); + efree(message); + } else { + va_start(args, format); + php_verror(NULL, "", E_WARNING, format, args TSRMLS_CC); + va_end(args); + } +} + /** {{{ zend_class_entry * yaf_get_exception_base(int root TSRMLS_DC) */ zend_class_entry * yaf_get_exception_base(int root TSRMLS_DC) { @@ -64,17 +81,10 @@ } /* }}} */ -/** {{{ void yaf_throw_exception(long code TSRMLS_DC, char * format, ...) +/** {{{ void yaf_throw_exception(long code TSRMLS_DC, char * format, char *message) */ -void yaf_throw_exception(long code TSRMLS_DC, char * format, ...) { - va_list arg; - char *message = NULL; +void yaf_throw_exception(long code, char *message TSRMLS_CC) { zend_class_entry *base_exception = NULL; - - va_start(arg, format); - vspprintf(&message, 0, format, arg); - va_end(arg); - base_exception = yaf_exception_ce; if ((code & YAF_ERR_BASE) == YAF_ERR_BASE @@ -83,7 +93,6 @@ } zend_throw_exception(base_exception, message, code TSRMLS_CC); - efree(message); } /* }}} */ Modified: pecl/yaf/trunk/yaf_exception.h =================================================================== --- pecl/yaf/trunk/yaf_exception.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_exception.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -46,13 +46,6 @@ #if defined(PHP_WIN32) && (_MSC_VER > 1400) -#define yaf_trigger_error(type, format, ...) \ - if (YAF_G(throw_exception)) {\ - yaf_throw_exception(type TSRMLS_CC, format, __VA_ARGS__);\ - } else { \ - php_error(YAF_ERR_ERROR, "[%d]"format, type, __VA_ARGS__); \ - } - #define yaf_error(format, ...) \ php_error(YAF_ERR_ERROR, format, __VA_ARGS__); @@ -67,13 +60,6 @@ #elif defined(__GNUC__) -#define yaf_trigger_error(type, format, arg...) \ - if (YAF_G(throw_exception)) {\ - yaf_throw_exception(type TSRMLS_CC, format, ##arg);\ - } else { \ - php_error(YAF_ERR_ERROR, "[%d]"format, type, ##arg); \ - } - #define yaf_error(format, arg...) \ php_error(YAF_ERR_ERROR, format, ##arg); @@ -109,7 +95,7 @@ } while(0) -void yaf_throw_exception(long code TSRMLS_DC, char *format, ...); +void yaf_throw_exception(long code, char *message TSRMLS_DC); extern zend_class_entry * yaf_ce_RuntimeException; extern zend_class_entry * yaf_exception_ce; Modified: pecl/yaf/trunk/yaf_loader.c =================================================================== --- pecl/yaf/trunk/yaf_loader.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_loader.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -35,9 +35,9 @@ zend_class_entry *yaf_loader_ce; -/** {{{ boolean yaf_loader_register(TSRMLS_D) +/** {{{ int yaf_loader_register(TSRMLS_D) */ -boolean yaf_loader_register(yaf_loader_t *loader TSRMLS_DC) { +int yaf_loader_register(yaf_loader_t *loader TSRMLS_DC) { zval *ret = NULL; zval *autoload = NULL; zval *method = NULL; @@ -72,7 +72,7 @@ if (zend_call_function(&fci, NULL TSRMLS_CC) == FAILURE) { yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "cant not register autoload function %s", YAF_AUTOLOAD_FUNC_NAME); - return FALSE; + return 0; } /*{{{ no use anymore @@ -116,36 +116,36 @@ }}} */ } while (0); - return TRUE; + return 1; } /* }}} */ -/** {{{ inline boolean yaf_loader_is_category(char *class, uint class_len, char *category, uint category_len TSRMLS_DC) +/** {{{ inline int yaf_loader_is_category(char *class, uint class_len, char *category, uint category_len TSRMLS_DC) */ -inline boolean yaf_loader_is_category(char *class, uint class_len, char *category, uint category_len TSRMLS_DC) { +inline int yaf_loader_is_category(char *class, uint class_len, char *category, uint category_len TSRMLS_DC) { uint separator_len = strlen(YAF_G(name_separator)); if (YAF_G(name_suffix)) { if (strncmp(class + class_len - category_len, category, category_len) == 0) { if (!separator_len || strncmp(class + class_len - category_len - separator_len, YAF_G(name_separator), separator_len) == 0) { - return TRUE; + return 1; } } } else { if (strncmp(class, category, category_len) == 0) { if (!separator_len || strncmp(class + category_len, YAF_G(name_separator), separator_len) == 0) { - return TRUE; + return 1; } } } - return FALSE; + return 0; } /* }}} */ -/** {{{ boolean yaf_loader_is_local_namespace(yaf_loader_t *loader, char *class_name, int len TSRMLS_DC) +/** {{{ int yaf_loader_is_local_namespace(yaf_loader_t *loader, char *class_name, int len TSRMLS_DC) */ -boolean yaf_loader_is_local_namespace(yaf_loader_t *loader, char *class_name, int len TSRMLS_DC) { +int yaf_loader_is_local_namespace(yaf_loader_t *loader, char *class_name, int len TSRMLS_DC) { char *pos = NULL; char *ns = NULL; char *prefix = NULL; @@ -153,7 +153,7 @@ zval *namespaces = yaf_read_property(loader, YAF_LOADER_PROPERTY_NAME_NAMESPACE); if (ZVAL_IS_NULL(namespaces)) { - return FALSE; + return 0; } pos = Z_STRVAL_P(namespaces); @@ -172,21 +172,21 @@ #endif if (!prefix_len) { - return FALSE; + return 0; } while ((pos = strstr(ns, prefix))) { if ((pos == ns) && *(pos + prefix_len) == DEFAULT_DIR_SEPARATOR) { efree(prefix); - return TRUE; + return 1; } else if (*(pos - 1) == DEFAULT_DIR_SEPARATOR && *(pos + prefix_len) == DEFAULT_DIR_SEPARATOR) { efree(prefix); - return TRUE; + return 1; } ns = pos + prefix_len; } - return FALSE; + return 0; } /* }}} */ @@ -221,18 +221,18 @@ if (library_path && global_path) { MAKE_STD_ZVAL(glibrary); MAKE_STD_ZVAL(library); - ZVAL_STRING(glibrary, global_path, TRUE); - ZVAL_STRING(library, library_path, TRUE); + ZVAL_STRING(glibrary, global_path, 1); + ZVAL_STRING(library, library_path, 1); yaf_update_property(instance, YAF_LOADER_PROPERTY_NAME_LIBRARY, library); yaf_update_property(instance, YAF_LOADER_PROPERTY_NAME_GLOBAL_LIB, glibrary); } else if (!global_path) { MAKE_STD_ZVAL(library); - ZVAL_STRING(library, library_path, TRUE); + ZVAL_STRING(library, library_path, 1); yaf_update_property(instance, YAF_LOADER_PROPERTY_NAME_LIBRARY, library); yaf_update_property(instance, YAF_LOADER_PROPERTY_NAME_GLOBAL_LIB, library); } else { MAKE_STD_ZVAL(glibrary); - ZVAL_STRING(glibrary, global_path, TRUE); + ZVAL_STRING(glibrary, global_path, 1); yaf_update_property(instance, YAF_LOADER_PROPERTY_NAME_LIBRARY, glibrary); yaf_update_property(instance, YAF_LOADER_PROPERTY_NAME_GLOBAL_LIB, glibrary); } @@ -247,9 +247,9 @@ } /* }}} */ -/** {{{ boolean yaf_loader_compose(char *path, int lenA, boolean use_path TSRMLS_DC) +/** {{{ int yaf_loader_compose(char *path, int lenA, int use_path TSRMLS_DC) */ -boolean yaf_loader_compose(char *path, int len, boolean use_path TSRMLS_DC) { +int yaf_loader_compose(char *path, int len, int use_path TSRMLS_DC) { zend_file_handle file_handle; @@ -301,16 +301,16 @@ YAF_RESTORE_EG_ENVIRON(); } } else { - return FALSE; + return 0; } - return TRUE; + return 1; } /* }}} */ -/** {{{ boolean yaf_loader_import(char *path, int len, boolean use_path TSRMLS_DC) +/** {{{ int yaf_loader_import(char *path, int len, int use_path TSRMLS_DC) */ -boolean yaf_loader_import(char *path, int len, boolean use_path TSRMLS_DC) { +int yaf_loader_import(char *path, int len, int use_path TSRMLS_DC) { zend_file_handle file_handle; @@ -360,16 +360,16 @@ YAF_RESTORE_EG_ENVIRON(); } } else { - return FALSE; + return 0; } - return TRUE; + return 1; } /* }}} */ -/** {{{ boolean yaf_internal_autoload(char * file_name, uint name_len, char **directory TSRMLS_DC) +/** {{{ int yaf_internal_autoload(char * file_name, uint name_len, char **directory TSRMLS_DC) */ -boolean yaf_internal_autoload(char *file_name, uint name_len, char **directory TSRMLS_DC) { +int yaf_internal_autoload(char *file_name, uint name_len, char **directory TSRMLS_DC) { zval *library_dir = NULL; zval *global_dir = NULL; char *ext = YAF_G(ext); @@ -379,7 +379,7 @@ int seg_len = 0; int directory_len = 0; smart_str buf = {0}; - boolean status = FALSE; + int status = 0; if (NULL == *directory) { char *library_path = NULL; @@ -391,7 +391,7 @@ if (!loader) { /* since only call from userspace can cause loader is NULL, exception throw will works well */ yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "%s need to be initialize first", yaf_loader_ce->name); - return FALSE; + return 0; } else { library_dir = yaf_read_property(loader, YAF_LOADER_PROPERTY_NAME_LIBRARY); global_dir = yaf_read_property(loader, YAF_LOADER_PROPERTY_NAME_GLOBAL_LIB); @@ -407,7 +407,7 @@ if (NULL == library_path) { yaf_trigger_error(YAF_ERR_STARTUP_FAILED, "%s requires %s(which set the library_directory) to be initialized first", yaf_loader_ce->name, yaf_application_ce->name); - return FALSE; + return 0; } smart_str_appendl(&buf, library_path, library_path_len); @@ -449,19 +449,19 @@ *(directory) = estrndup(buf.c, buf.len); } - status = yaf_loader_import(buf.c, buf.len, FALSE TSRMLS_CC); + status = yaf_loader_import(buf.c, buf.len, 0 TSRMLS_CC); smart_str_free(&buf); if (!status) - return FALSE; + return 0; - return TRUE; + return 1; } /* }}} */ -/** {{{ boolean yaf_loader_register_namespace_single(yaf_loader_t *loader, zval *prefix TSRMLS_DC) +/** {{{ int yaf_loader_register_namespace_single(yaf_loader_t *loader, zval *prefix TSRMLS_DC) */ -boolean yaf_loader_register_namespace_single(yaf_loader_t *loader, zval *prefix TSRMLS_DC) { +int yaf_loader_register_namespace_single(yaf_loader_t *loader, zval *prefix TSRMLS_DC) { zval *namespaces = NULL; smart_str buf = {NULL, 0, 0}; @@ -480,13 +480,13 @@ smart_str_free(&buf); - return TRUE; + return 1; } /* }}} */ -/** {{{ boolean yaf_loader_register_namespace_multi(yaf_loader_t *loader, zval *prefixes TSRMLS_DC) +/** {{{ int yaf_loader_register_namespace_multi(yaf_loader_t *loader, zval *prefixes TSRMLS_DC) */ -boolean yaf_loader_register_namespace_multi(yaf_loader_t *loader, zval *prefixes TSRMLS_DC) { +int yaf_loader_register_namespace_multi(yaf_loader_t *loader, zval *prefixes TSRMLS_DC) { zval *namespaces = NULL; smart_str buf = {0}; HashTable *ht = NULL; @@ -513,11 +513,11 @@ } } - ZVAL_STRINGL(namespaces, buf.c, buf.len, TRUE); + ZVAL_STRINGL(namespaces, buf.c, buf.len, 1); smart_str_free(&buf); - return TRUE; + return 1; } /* }}} */ @@ -639,7 +639,7 @@ RETURN_TRUE; } - RETURN_BOOL(yaf_loader_import(file, len, FALSE TSRMLS_CC)); + RETURN_BOOL(yaf_loader_import(file, len, 0 TSRMLS_CC)); } } /* }}} */ Modified: pecl/yaf/trunk/yaf_loader.h =================================================================== --- pecl/yaf/trunk/yaf_loader.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_loader.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -18,6 +18,16 @@ #ifndef YAF_LOADER_H #define YAF_LOADER_H +#define YAF_DEFAULT_VIEW_EXT "phtml" +#define YAF_DEFAULT_LIBRARY_EXT YAF_DEFAULT_CONTROLLER_EXT + +#define YAF_LIBRARY_DIRECTORY_NAME "library" +#define YAF_CONTROLLER_DIRECTORY_NAME "controller" +#define YAF_PLUGIN_DIRECTORY_NAME "plugins" +#define YAF_MODULE_DIRECTORY_NAME "modules" +#define YAF_VIEW_DIRECTORY_NAME "views" +#define YAF_MODEL_DIRECTORY_NAME "models" + #define YAF_SPL_AUTOLOAD_REGISTER_NAME "spl_autoload_register" #define YAF_AUTOLOAD_FUNC_NAME "autoload" #define YAF_LOADER_PROPERTY_NAME_INSTANCE "_instance" @@ -25,31 +35,22 @@ #define YAF_LOADER_CONTROLLER "Controller" #define YAF_LOADER_LEN_CONTROLLER 10 -#define YAF_LOADER_MODEL "Model" -#define YAF_LOADER_LEN_MODEL 5 +#define YAF_LOADER_MODEL "Model" +#define YAF_LOADER_LEN_MODEL 5 #define YAF_LOADER_PLUGIN "Plugin" #define YAF_LOADER_LEN_PLUGIN 6 -#define YAF_LOADER_RESERVERD "Yaf_" -#define YAF_LOADER_LEN_RESERVERD 3 +#define YAF_LOADER_RESERVERD "Yaf_" +#define YAF_LOADER_LEN_RESERVERD 3 -#define YAF_LOADER_PROPERTY_NAME_LIBRARY "_library" -#define YAF_LOADER_PROPERTY_NAME_GLOBAL_LIB "_global_library" +#define YAF_LOADER_PROPERTY_NAME_LIBRARY "_library" +#define YAF_LOADER_PROPERTY_NAME_GLOBAL_LIB "_global_library" -#ifndef YAF_STANDARD -#define YAF_LOADER_DAO "Dao_" -#define YAF_LOADER_LEN_DAO 4 -#define YAF_LOADER_SERVICE "Service_" -#define YAF_LOADER_LEN_SERVICE 8 -#endif - - -#ifdef PHP5_3P - +#if ((PHP_MAJOR_VERSION == 5) && (PHP_MINOR_VERSION > 2)) || (PHP_MAJOR_VERSION > 5) #define YAF_STORE_EG_ENVIRON() \ { \ - zval ** __old_return_value_pp = EG(return_value_ptr_ptr); \ - zend_op ** __old_opline_ptr = EG(opline_ptr); \ - zend_op_array * __old_op_array = EG(active_op_array); + zval ** __old_return_value_pp = EG(return_value_ptr_ptr); \ + zend_op ** __old_opline_ptr = EG(opline_ptr); \ + zend_op_array * __old_op_array = EG(active_op_array); #define YAF_RESTORE_EG_ENVIRON() \ EG(return_value_ptr_ptr) = __old_return_value_pp;\ @@ -77,10 +78,10 @@ extern zend_class_entry *yaf_loader_ce; -boolean yaf_internal_autoload(char *file_name, uint name_len, char **directory TSRMLS_DC); -boolean yaf_loader_import(char *path, int len, boolean use_path TSRMLS_DC); -boolean yaf_loader_compose(char *path, int len, boolean use_path TSRMLS_DC); -boolean yaf_register_autoloader(yaf_loader_t *loader TSRMLS_DC); +int yaf_internal_autoload(char *file_name, uint name_len, char **directory TSRMLS_DC); +int yaf_loader_import(char *path, int len, int use_path TSRMLS_DC); +int yaf_loader_compose(char *path, int len, int use_path TSRMLS_DC); +int yaf_register_autoloader(yaf_loader_t *loader TSRMLS_DC); yaf_loader_t * yaf_loader_instance(yaf_loader_t *this_ptr, char *library_path, char *global_path TSRMLS_DC); extern PHPAPI int php_stream_open_for_zend_ex(const char *filename, zend_file_handle *handle, int mode TSRMLS_DC); Modified: pecl/yaf/trunk/yaf_plugin.c =================================================================== --- pecl/yaf/trunk/yaf_plugin.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_plugin.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -35,17 +35,17 @@ zend_class_entry * yaf_plugin_ce; -/** {{{ YAF_ARG_INFO +/** {{{ ARG_INFO */ -YAF_BEGIN_ARG_INFO_EX(plugin_arg, 0, 0, 2) - YAF_ARG_OBJ_INFO(0, request, Yaf_Request_Abstract, 0) - YAF_ARG_OBJ_INFO(0, response, Yaf_Response_Abstract, 0) +ZEND_BEGIN_ARG_INFO_EX(plugin_arg, 0, 0, 2) + ZEND_ARG_OBJ_INFO(0, request, Yaf_Request_Abstract, 0) + ZEND_ARG_OBJ_INFO(0, response, Yaf_Response_Abstract, 0) ZEND_END_ARG_INFO() #ifdef YAF_HAVE_NAMESPACE -YAF_BEGIN_ARG_INFO_EX(plugin_arg_ns, 0, 0, 2) - YAF_ARG_OBJ_INFO(0, request, Yaf\\Request_Abstract, 0) - YAF_ARG_OBJ_INFO(0, response, Yaf\\Response_Abstract, 0) +ZEND_BEGIN_ARG_INFO_EX(plugin_arg_ns, 0, 0, 2) + ZEND_ARG_OBJ_INFO(0, request, Yaf\\Request_Abstract, 0) + ZEND_ARG_OBJ_INFO(0, response, Yaf\\Response_Abstract, 0) ZEND_END_ARG_INFO() #endif /* }}} */ Modified: pecl/yaf/trunk/yaf_registry.c =================================================================== --- pecl/yaf/trunk/yaf_registry.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_registry.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -64,9 +64,9 @@ } /* }}} */ -/** {{{ boolean yaf_registry_is_set(char *name, int len TSRMLS_DC) +/** {{{ int yaf_registry_is_set(char *name, int len TSRMLS_DC) */ -boolean yaf_registry_is_set(char *name, int len TSRMLS_DC) { +int yaf_registry_is_set(char *name, int len TSRMLS_DC) { yaf_registry_t *registry = NULL; zval *entrys = NULL; Modified: pecl/yaf/trunk/yaf_request.c =================================================================== --- pecl/yaf/trunk/yaf_request.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_request.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -12,8 +12,10 @@ +----------------------------------------------------------------------+ | Author: Xinchen Hui | +----------------------------------------------------------------------+ - $Id$ - */ +*/ + +/* $Id$*/ + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -39,44 +41,36 @@ /** {{{ yaf_request_t * yaf_request_instance(zval *this_ptr, char *other TSRMLS_DC) */ yaf_request_t * yaf_request_instance(yaf_request_t *this_ptr, char *other TSRMLS_DC) { - yaf_request_t * instance = NULL; - - instance = yaf_request_http_instance(this_ptr, NULL, other TSRMLS_CC); - + yaf_request_t *instance = yaf_request_http_instance(this_ptr, NULL, other TSRMLS_CC); return instance; } /* }}} */ -/** {{{ boolean yaf_request_set_base_uri(yaf_request_t *request, char *base_uri, char *request_uri TSRMLS_DC) +/** {{{ int yaf_request_set_base_uri(yaf_request_t *request, char *base_uri, char *request_uri TSRMLS_DC) */ -boolean yaf_request_set_base_uri(yaf_request_t *request, char *base_uri, char *request_uri TSRMLS_DC) { - char *basename = NULL; - int basename_len = 0; +int yaf_request_set_base_uri(yaf_request_t *request, char *base_uri, char *request_uri TSRMLS_DC) { + char *basename; + int basename_len; if (!base_uri) { - zval *script_filename = NULL; - char *file_name = NULL; - char *ext = YAF_G(ext); - int ext_len = 0; - size_t file_name_len = 0; + zval *script_filename; + char *file_name, *ext = YAF_G(ext); + size_t file_name_len; + uint ext_len; ext_len = strlen(ext); - script_filename = yaf_request_query(YAF_GLOBAL_VARS_SERVER, YAF_STRL("SCRIPT_FILENAME") TSRMLS_CC); + script_filename = yaf_request_query(YAF_GLOBAL_VARS_SERVER, ZEND_STRL("SCRIPT_FILENAME") TSRMLS_CC); do { if (script_filename && IS_STRING == Z_TYPE_P(script_filename)) { - zval *script_name = NULL; - zval *phpself_name = NULL; - zval *orig_name = NULL; - script_name = yaf_request_query(YAF_GLOBAL_VARS_SERVER, YAF_STRL("SCRIPT_NAME") TSRMLS_CC); + zval *script_name, *phpself_name, *orig_name; - php_basename(Z_STRVAL_P(script_filename), Z_STRLEN_P(script_filename), - ext, ext_len, &file_name, &file_name_len TSRMLS_CC); - + script_name = yaf_request_query(YAF_GLOBAL_VARS_SERVER, ZEND_STRL("SCRIPT_NAME") TSRMLS_CC); + php_basename(Z_STRVAL_P(script_filename), Z_STRLEN_P(script_filename), ext, ext_len, &file_name, &file_name_len TSRMLS_CC); if (script_name && IS_STRING == Z_TYPE_P(script_name)) { - char *script = NULL; - size_t script_len = 0; + char *script; + size_t script_len; php_basename(Z_STRVAL_P(script_name), Z_STRLEN_P(script_name), NULL, 0, &script, &script_len TSRMLS_CC); @@ -87,42 +81,35 @@ efree(script); break; } - efree(script); } - phpself_name = yaf_request_query(YAF_GLOBAL_VARS_SERVER, YAF_STRL("PHP_SELF") TSRMLS_CC); - + phpself_name = yaf_request_query(YAF_GLOBAL_VARS_SERVER, ZEND_STRL("PHP_SELF") TSRMLS_CC); if (phpself_name && IS_STRING == Z_TYPE_P(phpself_name)) { - char *phpself = NULL; - size_t phpself_len = 0; + char *phpself; + size_t phpself_len; - php_basename(Z_STRVAL_P(phpself_name), Z_STRLEN_P(phpself_name), - NULL, 0, &phpself, &phpself_len TSRMLS_CC); - + php_basename(Z_STRVAL_P(phpself_name), Z_STRLEN_P(phpself_name), NULL, 0, &phpself, &phpself_len TSRMLS_CC); if (strncmp(file_name, phpself, file_name_len) == 0) { - efree(phpself); basename = Z_STRVAL_P(phpself_name); basename_len = Z_STRLEN_P(phpself_name); + efree(phpself); break; } - efree(phpself); } - orig_name = yaf_request_query(YAF_GLOBAL_VARS_SERVER, YAF_STRL("PHP_SELF") TSRMLS_CC); - + orig_name = yaf_request_query(YAF_GLOBAL_VARS_SERVER, ZEND_STRL("PHP_SELF") TSRMLS_CC); if (orig_name && IS_STRING == Z_TYPE_P(orig_name)) { - char *orig = NULL; - size_t orig_len= 0; + char *orig; + size_t orig_len; php_basename(Z_STRVAL_P(orig_name), Z_STRLEN_P(orig_name), NULL, 0, &orig, &orig_len TSRMLS_CC); if (strncmp(file_name, orig, file_name_len) == 0) { - efree(orig); basename = Z_STRVAL_P(orig_name); basename_len = Z_STRLEN_P(orig_name); + efree(orig); break; } - efree(orig); } } @@ -132,12 +119,11 @@ if (*(basename + basename_len - 1) == '/') { --basename_len; } - zend_update_property_stringl(Z_OBJCE_P(request), request, - YAF_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), basename, basename_len TSRMLS_CC); - return TRUE; + zend_update_property_stringl(Z_OBJCE_P(request), request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), basename, basename_len TSRMLS_CC); + return 1; } else if (basename) { - char *dir = NULL; - size_t dir_len = 0; + char *dir; + size_t dir_len; dir_len = php_dirname(basename, basename_len); if (*(basename + dir_len - 1) == '/') { @@ -147,22 +133,18 @@ if (dir_len) { dir = estrndup(basename, dir_len); if (strstr(request_uri, dir) == request_uri) { - zend_update_property_string(Z_OBJCE_P(request), request, - YAF_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), dir TSRMLS_CC); + zend_update_property_string(Z_OBJCE_P(request), request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), dir TSRMLS_CC); efree(dir); - return TRUE; + return 1; } efree(dir); } } - - zend_update_property_string(Z_OBJCE_P(request), request, - YAF_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), "" TSRMLS_CC); - return TRUE; + zend_update_property_string(Z_OBJCE_P(request), request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), "" TSRMLS_CC); + return 1; } else { - zend_update_property_string(Z_OBJCE_P(request), request, - YAF_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), base_uri TSRMLS_CC); - return TRUE; + zend_update_property_string(Z_OBJCE_P(request), request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), base_uri TSRMLS_CC); + return 1; } } /* }}} */ @@ -170,11 +152,9 @@ /** {{{ zval * yaf_request_query(uint type, char * name, uint len TSRMLS_DC) */ zval * yaf_request_query(uint type, char * name, uint len TSRMLS_DC) { - zval **carrier = NULL; - zval **ret = NULL; + zval **carrier, **ret; + zend_bool jit_initialization = (PG(auto_globals_jit) && !PG(register_globals) && !PG(register_long_arrays)); - zend_bool jit_initialization = (PG(auto_globals_jit) && !PG(register_globals) && !PG(register_long_arrays)); - /* for phpunit test requirements */ #if PHP_YAF_DEBUG switch (type) { @@ -189,13 +169,13 @@ break; case YAF_GLOBAL_VARS_SERVER: if (jit_initialization) { - zend_is_auto_global(YAF_STRL("_SERVER") TSRMLS_CC); + zend_is_auto_global(ZEND_STRL("_SERVER") TSRMLS_CC); } (void)zend_hash_find(&EG(symbol_table), YAF_STRS("_SERVER"), (void **)&carrier); break; case YAF_GLOBAL_VARS_ENV: if (jit_initialization) { - zend_is_auto_global(YAF_STRL("_ENV") TSRMLS_CC); + zend_is_auto_global(ZEND_STRL("_ENV") TSRMLS_CC); } carrier = &PG(http_globals)[YAF_GLOBAL_VARS_ENV]; break; @@ -204,7 +184,7 @@ break; case YAF_GLOBAL_VARS_REQUEST: if (jit_initialization) { - zend_is_auto_global(YAF_STRL("_REQUEST") TSRMLS_CC); + zend_is_auto_global(ZEND_STRL("_REQUEST") TSRMLS_CC); } (void)zend_hash_find(&EG(symbol_table), YAF_STRS("_REQUEST"), (void **)&carrier); break; @@ -221,19 +201,19 @@ break; case YAF_GLOBAL_VARS_ENV: if (jit_initialization) { - zend_is_auto_global(YAF_STRL("_ENV") TSRMLS_CC); + zend_is_auto_global(ZEND_STRL("_ENV") TSRMLS_CC); } carrier = &PG(http_globals)[type]; break; case YAF_GLOBAL_VARS_SERVER: if (jit_initialization) { - zend_is_auto_global(YAF_STRL("_SERVER") TSRMLS_CC); + zend_is_auto_global(ZEND_STRL("_SERVER") TSRMLS_CC); } carrier = &PG(http_globals)[type]; break; case YAF_GLOBAL_VARS_REQUEST: if (jit_initialization) { - zend_is_auto_global(YAF_STRL("_REQUEST") TSRMLS_CC); + zend_is_auto_global(ZEND_STRL("_REQUEST") TSRMLS_CC); } (void)zend_hash_find(&EG(symbol_table), YAF_STRS("_REQUEST"), (void **)&carrier); break; @@ -243,7 +223,7 @@ #endif if (!carrier || !(*carrier)) { - zval *empty = NULL; + zval *empty; MAKE_STD_ZVAL(empty); ZVAL_NULL(empty); return empty; @@ -253,21 +233,20 @@ return *carrier; } - if (zend_hash_find(Z_ARRVAL_PP(carrier), name, len + 1, (void **)&ret) == FAILURE ){ - zval *empty = NULL; + if (zend_hash_find(Z_ARRVAL_PP(carrier), name, len + 1, (void **)&ret) == FAILURE) { + zval *empty; MAKE_STD_ZVAL(empty); ZVAL_NULL(empty); return empty; } - return *ret; } /* }}} */ -/** {{{ inline yaf_request_t * yaf_request_get_method(yaf_request_t *instance TSRMLS_DC) +/** {{{inline yaf_request_t * yaf_request_get_method(yaf_request_t *request TSRMLS_DC) */ -inline yaf_request_t * yaf_request_get_method(yaf_request_t *instance TSRMLS_DC) { - yaf_request_t *method = yaf_read_property(instance, YAF_REQUEST_PROPERTY_NAME_METHOD); +inline yaf_request_t * yaf_request_get_method(yaf_request_t *request TSRMLS_DC) { + yaf_request_t *method = zend_read_property(Z_OBJCE_P(request), request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_METHOD), 0 TSRMLS_CC); return method; } /* }}} */ @@ -275,25 +254,22 @@ /** {{{ inline yaf_request_t * yaf_request_get_language(yaf_request_t *instance TSRMLS_DC) */ inline zval * yaf_request_get_language(yaf_request_t *instance TSRMLS_DC) { - yaf_request_t *lang = yaf_read_property(instance, YAF_REQUEST_PROPERTY_NAME_LANG); + yaf_request_t *lang = zend_read_property(Z_OBJCE_P(instance), instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_LANG), 0 TSRMLS_CC); if (IS_STRING != Z_TYPE_P(lang)) { - zval * accept_langs = yaf_request_query(YAF_GLOBAL_VARS_SERVER, YAF_STRL("HTTP_ACCEPT_LANGUAGE") TSRMLS_CC); + zval * accept_langs = yaf_request_query(YAF_GLOBAL_VARS_SERVER, ZEND_STRL("HTTP_ACCEPT_LANGUAGE") TSRMLS_CC); if (IS_STRING != Z_TYPE_P(accept_langs) || !Z_STRLEN_P(accept_langs)) { return lang; } else { - double max_qvlaue = 0; - char *prefer = NULL; - char *ptrptr = NULL; - int prefer_len = 0; - char *seg = NULL; - char *langs = estrndup(Z_STRVAL_P(accept_langs), Z_STRLEN_P(accept_langs)); + double max_qvlaue; + uint prefer_len; + char *prefer, *ptrptr, *seg; + char *langs = estrndup(Z_STRVAL_P(accept_langs), Z_STRLEN_P(accept_langs)); seg = php_strtok_r(langs, ",", &ptrptr); - while(seg) { - char *qvalue = NULL; + char *qvalue; while( *(seg) == ' ') seg++ ; /* Accept-Language: da, en-gb;q=0.8, en;q=0.7 */ if ((qvalue = strstr(seg, "q="))) { @@ -318,97 +294,87 @@ } if (prefer) { - zval *accept_language = NULL; + zval *accept_language; MAKE_STD_ZVAL(accept_language); - ZVAL_STRINGL(accept_language, prefer, prefer_len, TRUE); + ZVAL_STRINGL(accept_language, prefer, prefer_len, 1); yaf_update_property(instance, YAF_REQUEST_PROPERTY_NAME_LANG, accept_language); efree(prefer); efree(langs); return accept_language; } - efree(langs); } } - return lang; } /* }}} */ -/** {{{ inline boolean yaf_request_is_routed(yaf_request_t *instance TSRMLS_DC) +/** {{{ inline int yaf_request_is_routed(zend_class_entry *ce, yaf_request_t *request TSRMLS_DC) */ -inline boolean yaf_request_is_routed(yaf_request_t *instance TSRMLS_DC) { - yaf_request_t *routed = yaf_read_property(instance, YAF_REQUEST_PROPERTY_NAME_ROUTED); +inline int yaf_request_is_routed(zend_class_entry *ce, yaf_request_t *request TSRMLS_DC) { + yaf_request_t *routed = zend_read_property(ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ROUTED), 0 TSRMLS_CC); return Z_LVAL_P(routed); } /* }}} */ -/** {{{ inline boolean yaf_request_is_dispatched(yaf_request_t *instance TSRMLS_DC) +/** {{{ inline int yaf_request_is_dispatched(zend_class_entry *ce, yaf_request_t *request TSRMLS_DC) */ -inline boolean yaf_request_is_dispatched(yaf_request_t *instance TSRMLS_DC) { - yaf_request_t *dispatched = yaf_read_property(instance, YAF_REQUEST_PROPERTY_NAME_STATE); +inline int yaf_request_is_dispatched(zend_class_entry *ce, yaf_request_t *request TSRMLS_DC) { + zval *dispatched = zend_read_property(ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_STATE), 0 TSRMLS_CC); return Z_LVAL_P(dispatched); } /* }}} */ -/** {{{ inline boolean yaf_request_set_dispatched(yaf_request_t *instance, int flag TSRMLS_DC) +/** {{{ inline int yaf_request_set_dispatched(zend_class_entry *request_ce, yaf_request_t *instance, int flag TSRMLS_DC) */ -inline boolean yaf_request_set_dispatched(yaf_request_t *instance, int flag TSRMLS_DC) { - zend_update_property_bool(Z_OBJCE_P(instance), instance, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_STATE), flag TSRMLS_CC); - return TRUE; +inline int yaf_request_set_dispatched(zend_class_entry *request_ce, yaf_request_t *instance, int flag TSRMLS_DC) { + zend_update_property_bool(request_ce, instance, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_STATE), flag TSRMLS_CC); + return 1; } /* }}} */ -/** {{{ inline boolean yaf_request_set_routed(yaf_request_t *instance, int flag TSRMLS_DC) +/** {{{ inline int yaf_request_set_routed(zend_class_entry *request_ce, yaf_request_t *request, int flag TSRMLS_DC) */ -inline boolean yaf_request_set_routed(yaf_request_t *instance, int flag TSRMLS_DC) { - zend_update_property_bool(Z_OBJCE_P(instance), instance, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_ROUTED), flag TSRMLS_CC); - return TRUE; +inline int yaf_request_set_routed(zend_class_entry *request_ce, yaf_request_t *request, int flag TSRMLS_DC) { + zend_update_property_bool(request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ROUTED), flag TSRMLS_CC); + return 1; } /* }}} */ -/** {{{ inline boolean yaf_request_set_params_single(yaf_request_t *instance, char *key, int len, zval *value TSRMLS_DC) +/** {{{ inline int yaf_request_set_params_single(yaf_request_t *request, char *key, int len, zval *value TSRMLS_DC) */ -inline boolean yaf_request_set_params_single(yaf_request_t *instance, char *key, int len, zval *value TSRMLS_DC) { +inline int yaf_request_set_params_single(yaf_request_t *request, char *key, int len, zval *value TSRMLS_DC) { + zval *params = zend_read_property(Z_OBJCE_P(request), request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), 0 TSRMLS_CC); - zval *params = NULL; - - params = yaf_read_property(instance, YAF_REQUEST_PROPERTY_NAME_PARAMS); - if (zend_hash_update(Z_ARRVAL_P(params), key, len+1, &value, sizeof(zval *), NULL) == SUCCESS) { Z_ADDREF_P(value); - return TRUE; + return 1; } - return FALSE; + return 0; } /* }}} */ -/** {{{ inline boolean yaf_request_set_params_multi(yaf_request_t *instance, zval *values TSRMLS_DC) +/** {{{ inline int yaf_request_set_params_multi(yaf_request_t *request, zval *values TSRMLS_DC) */ -inline boolean yaf_request_set_params_multi(yaf_request_t *instance, zval *values TSRMLS_DC) { - zval *params = NULL; - - params = yaf_read_property(instance, YAF_REQUEST_PROPERTY_NAME_PARAMS); +inline int yaf_request_set_params_multi(yaf_request_t *request, zval *values TSRMLS_DC) { + zval *params = zend_read_property(Z_OBJCE_P(request), request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), 0 TSRMLS_CC); if (values && Z_TYPE_P(values) == IS_ARRAY) { zend_hash_copy(Z_ARRVAL_P(params), Z_ARRVAL_P(values), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *)); - return TRUE; + return 1; } - - return FALSE; + return 0; } /* }}} */ -/** {{{ inline zval * yaf_request_get_param(yaf_request_t * instance, char *key, int len TSRMLS_DC) +/** {{{ inline zval * yaf_request_get_param(yaf_request_t *request, char *key, int len TSRMLS_DC) */ -inline zval * yaf_request_get_param(zval *instance, char *key, int len TSRMLS_DC) { - zval **ppzval = NULL; - zval *params = yaf_read_property(instance, YAF_REQUEST_PROPERTY_NAME_PARAMS); - +inline zval * yaf_request_get_param(yaf_request_t *request, char *key, int len TSRMLS_DC) { + zval **ppzval; + zval *params = zend_read_property(Z_OBJCE_P(request), request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), 0 TSRMLS_CC); if (zend_hash_find(Z_ARRVAL_P(params), key, len + 1, (void **) &ppzval) == SUCCESS) { return *ppzval; } - return NULL; } /* }}} */ @@ -463,7 +429,7 @@ /** {{{ proto public Yaf_Request_Abstract::getModuleName(void) */ PHP_METHOD(yaf_request, getModuleName) { - zval *module = yaf_read_property(getThis(), YAF_REQUEST_PROPERTY_NAME_MODULE); + zval *module = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), 0 TSRMLS_CC); RETVAL_ZVAL(module, 1, 0); } /* }}} */ @@ -471,7 +437,7 @@ /** {{{ proto public Yaf_Request_Abstract::getControllerName(void) */ PHP_METHOD(yaf_request, getControllerName) { - zval *controller = yaf_read_property(getThis(), YAF_REQUEST_PROPERTY_NAME_CONTROLLER); + zval *controller = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), 0 TSRMLS_CC); RETVAL_ZVAL(controller, 1, 0); } /* }}} */ @@ -479,7 +445,7 @@ /** {{{ proto public Yaf_Request_Abstract::getActionName(void) */ PHP_METHOD(yaf_request, getActionName) { - zval *action = yaf_read_property(getThis(), YAF_REQUEST_PROPERTY_NAME_ACTION); + zval *action = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), 0 TSRMLS_CC); RETVAL_ZVAL(action, 1, 0); } /* }}} */ @@ -487,19 +453,19 @@ /** {{{ proto public Yaf_Request_Abstract::setModuleName(string $module) */ PHP_METHOD(yaf_request, setModuleName) { - zval *module = NULL; - zval *self = getThis(); + zval *module; + yaf_request_t *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &module) == FAILURE) { - WRONG_PARAM_COUNT; + return; } if (Z_TYPE_P(module) != IS_STRING) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s::setModuleName expect a string module name", Z_OBJCE_P(self)->name); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expect a string module name"); RETURN_FALSE; } - yaf_update_property(self, YAF_REQUEST_PROPERTY_NAME_MODULE, module); + zend_update_property(Z_OBJCE_P(self), self, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), module TSRMLS_CC); RETURN_ZVAL(self, 1, 0); } @@ -508,19 +474,19 @@ /** {{{ proto public Yaf_Request_Abstract::setControllerName(string $controller) */ PHP_METHOD(yaf_request, setControllerName) { - zval *controller = NULL; - zval *self = getThis(); + zval *controller; + yaf_request_t *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &controller) == FAILURE) { - WRONG_PARAM_COUNT; + return; } if (Z_TYPE_P(controller) != IS_STRING) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s::setControllerName expect a string controller name", Z_OBJCE_P(self)->name); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expect a string controller name"); RETURN_FALSE; } - yaf_update_property(getThis(), YAF_REQUEST_PROPERTY_NAME_CONTROLLER, controller); + zend_update_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), controller TSRMLS_CC); RETURN_ZVAL(self, 1, 0); } @@ -529,19 +495,19 @@ /** {{{ proto public Yaf_Request_Abstract::setActionName(string $action) */ PHP_METHOD(yaf_request, setActionName) { - zval *action = NULL; + zval *action; zval *self = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &action) == FAILURE) { - WRONG_PARAM_COUNT; + return; } if (Z_TYPE_P(action) != IS_STRING) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s::setActionName expect a string action name", Z_OBJCE_P(self)->name); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expect a string action name"); RETURN_FALSE; } - yaf_update_property(getThis(), YAF_REQUEST_PROPERTY_NAME_ACTION, action); + zend_update_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), action TSRMLS_CC); RETURN_ZVAL(self, 1, 0); } @@ -550,15 +516,15 @@ /** {{{ proto public Yaf_Request_Abstract::setParam(mixed $value) */ PHP_METHOD(yaf_request, setParam) { - int argc = 0; - yaf_request_t *self = getThis(); + uint argc; + yaf_request_t *self = getThis(); argc = ZEND_NUM_ARGS(); if (1 == argc) { - zval *value = NULL; + zval *value ; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &value) == FAILURE) { - WRONG_PARAM_COUNT; + return; } if (value && Z_TYPE_P(value) == IS_ARRAY) { if (yaf_request_set_params_multi(self, value TSRMLS_CC)) { @@ -566,12 +532,11 @@ } } } else if (2 == argc) { - zval *value = NULL; - char *name = NULL; - int len = 0; - + zval *value; + char *name; + uint len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz", &name, &len, &value) == FAILURE) { - WRONG_PARAM_COUNT; + return; } if (yaf_request_set_params_single(getThis(), name, len, value TSRMLS_CC)) { @@ -588,24 +553,22 @@ /** {{{ proto public Yaf_Request_Abstract::getParam(string $name, $mixed $default = NULL) */ PHP_METHOD(yaf_request, getParam) { - char *name = NULL; - int len = 0; - zval *def = NULL; + char *name; + uint len; + zval *def; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z", &name, &len, &def) == FAILURE) { - WRONG_PARAM_COUNT; + return; } else { zval *value = yaf_request_get_param(getThis(), name, len TSRMLS_CC); - if (value) { RETURN_ZVAL(value, 1, 0); } - if (def) { RETURN_ZVAL(def, 1, 0); } - } + RETURN_NULL(); } /* }}} */ @@ -613,7 +576,7 @@ /** {{{ proto public Yaf_Request_Abstract::getException(void) */ PHP_METHOD(yaf_request, getException) { - zval *exception = yaf_read_property(getThis(), YAF_REQUEST_PROPERTY_NAME_EXCEPTION); + zval *exception = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_EXCEPTION), 0 TSRMLS_CC); if (IS_OBJECT == Z_TYPE_P(exception) && instanceof_function(Z_OBJCE_P(exception), #if (PHP_MAJOR_VERSION == 5) && (PHP_MINOR_VERSION < 2) @@ -632,7 +595,7 @@ /** {{{ proto public Yaf_Request_Abstract::getParams(void) */ PHP_METHOD(yaf_request, getParams) { - zval *params = yaf_read_property(getThis(), YAF_REQUEST_PROPERTY_NAME_PARAMS); + zval *params = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), 0 TSRMLS_CC); RETURN_ZVAL(params, 1, 0); } /* }}} */ @@ -640,7 +603,7 @@ /** {{{ proto public Yaf_Request_Abstract::getLanguage(void) */ PHP_METHOD(yaf_request, getLanguage) { - zval * lang = yaf_request_get_language(getThis() TSRMLS_CC); + zval *lang = yaf_request_get_language(getThis() TSRMLS_CC); RETURN_ZVAL(lang, 1, 0); } /* }}} */ @@ -656,31 +619,30 @@ /** {{{ proto public Yaf_Request_Abstract::isDispatched(void) */ PHP_METHOD(yaf_request, isDispatched) { - RETURN_BOOL(yaf_request_is_dispatched(getThis() TSRMLS_CC)); + RETURN_BOOL(yaf_request_is_dispatched(Z_OBJCE_P(getThis()), getThis() TSRMLS_CC)); } /* }}} */ /** {{{ proto public Yaf_Request_Abstract::setDispatched(void) */ PHP_METHOD(yaf_request, setDispatched) { - RETURN_BOOL(yaf_request_set_dispatched(getThis(), 1 TSRMLS_CC)); + RETURN_BOOL(yaf_request_set_dispatched(Z_OBJCE_P(getThis()), getThis(), 1 TSRMLS_CC)); } /* }}} */ /** {{{ proto public Yaf_Request_Abstract::setBaseUri(string $name) */ PHP_METHOD(yaf_request, setBaseUri) { - zval *uri = NULL; + zval *uri; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &uri) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - if (!uri - || Z_TYPE_P(uri) != IS_STRING - || !Z_STRLEN_P(uri)) { + if (Z_TYPE_P(uri) != IS_STRING || !Z_STRLEN_P(uri)) { RETURN_FALSE; } + if (yaf_request_set_base_uri(getThis(), Z_STRVAL_P(uri), NULL TSRMLS_CC)) { RETURN_ZVAL(getThis(), 1, 0); } @@ -692,11 +654,7 @@ /** {{{ proto public Yaf_Request_Abstract::getBaseUri(string $name) */ PHP_METHOD(yaf_request, getBaseUri) { - zval *uri = NULL; - yaf_request_t *self = getThis(); - - uri = yaf_read_property(self, YAF_REQUEST_PROPERTY_NAME_BASE); - + zval *uri = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), 0 TSRMLS_CC); RETURN_ZVAL(uri, 1, 0); } /* }}} */ @@ -704,11 +662,7 @@ /** {{{ proto public Yaf_Request_Abstract::getRequestUri(string $name) */ PHP_METHOD(yaf_request, getRequestUri) { - zval *uri = NULL; - yaf_request_t *self = getThis(); - - uri = yaf_read_property(self, YAF_REQUEST_PROPERTY_NAME_URI); - + zval *uri = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_URI), 0 TSRMLS_CC); RETURN_ZVAL(uri, 1, 0); } /* }}} */ @@ -716,19 +670,16 @@ /** {{{ proto public Yaf_Request_Abstract::isRouted(void) */ PHP_METHOD(yaf_request, isRouted) { - RETURN_BOOL(yaf_request_is_routed(getThis() TSRMLS_CC)); + RETURN_BOOL(yaf_request_is_routed(Z_OBJCE_P(getThis()), getThis() TSRMLS_CC)); } /* }}} */ /** {{{ proto public Yaf_Request_Abstract::setRouted(void) */ PHP_METHOD(yaf_request, setRouted) { - yaf_request_t *self = getThis(); - - if (yaf_request_set_routed(self, 1 TSRMLS_CC)) { - RETURN_ZVAL(self, 1, 0); + if (yaf_request_set_routed(Z_OBJCE_P(getThis()), getThis(), 1 TSRMLS_CC)) { + RETURN_ZVAL(getThis(), 1, 0); } - RETURN_FALSE; } /* }}} */ @@ -777,18 +728,18 @@ yaf_request_ce = zend_register_internal_class_ex(&ce, NULL, NULL TSRMLS_CC); yaf_request_ce->ce_flags = ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; - zend_declare_property_null(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), ZEND_ACC_PUBLIC TSRMLS_CC); - zend_declare_property_null(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), ZEND_ACC_PUBLIC TSRMLS_CC); - zend_declare_property_null(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), ZEND_ACC_PUBLIC TSRMLS_CC); - zend_declare_property_null(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_METHOD), ZEND_ACC_PUBLIC TSRMLS_CC); - zend_declare_property_null(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_LANG), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_null(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_EXCEPTION), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_MODULE), ZEND_ACC_PUBLIC TSRMLS_CC); + zend_declare_property_null(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_CONTROLLER), ZEND_ACC_PUBLIC TSRMLS_CC); + zend_declare_property_null(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ACTION), ZEND_ACC_PUBLIC TSRMLS_CC); + zend_declare_property_null(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_METHOD), ZEND_ACC_PUBLIC TSRMLS_CC); + zend_declare_property_null(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_PARAMS), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_LANG), ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_null(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_EXCEPTION), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_string(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), "", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_string(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_URI), "", ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_bool(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_STATE), 0, ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_bool(yaf_request_ce, YAF_STRL(YAF_REQUEST_PROPERTY_NAME_ROUTED), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_string(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), "", ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_string(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_URI), "", ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_bool(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_STATE), 0, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_bool(yaf_request_ce, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_ROUTED), 0, ZEND_ACC_PROTECTED TSRMLS_CC); YAF_STARTUP(request_http); YAF_STARTUP(request_simple); Modified: pecl/yaf/trunk/yaf_request.h =================================================================== --- pecl/yaf/trunk/yaf_request.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_request.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -43,7 +43,7 @@ #define YAF_REQUEST_IS_METHOD(x) \ PHP_METHOD(yaf_request, is##x) {\ - zval * method = yaf_read_property(getThis(), YAF_REQUEST_PROPERTY_NAME_METHOD);\ + zval * method = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_METHOD), 0 TSRMLS_CC);\ if (strncasecmp(#x, Z_STRVAL_P(method), Z_STRLEN_P(method)) == 0) { \ RETURN_TRUE; \ } \ @@ -52,10 +52,10 @@ #define YAF_REQUEST_METHOD(ce, x, type) \ PHP_METHOD(ce, get##x) { \ - char *name = NULL; \ - int len = 0; \ - zval *ret = NULL; \ - zval *def = NULL; \ + char *name; \ + int len; \ + zval *ret; \ + zval *def = NULL; \ if (ZEND_NUM_ARGS() == 0) {\ ret = yaf_request_query(type, NULL, 0 TSRMLS_CC);\ }else if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z", &name, &len, &def) == FAILURE) {\ @@ -75,19 +75,19 @@ zval * yaf_request_query(uint type, char * name, uint len TSRMLS_DC); yaf_request_t * yaf_request_instance(yaf_request_t *this_ptr, char *info TSRMLS_DC); -boolean yaf_request_set_base_uri(yaf_request_t *request, char *base_uri, char *request_uri TSRMLS_DC); +int yaf_request_set_base_uri(yaf_request_t *request, char *base_uri, char *request_uri TSRMLS_DC); PHPAPI void php_session_start(TSRMLS_D); inline zval * yaf_request_get_method(yaf_request_t *instance TSRMLS_DC); inline zval * yaf_request_get_param(yaf_request_t *instance, char *key, int len TSRMLS_DC); inline zval * yaf_request_get_language(yaf_request_t *instance TSRMLS_DC); -inline boolean yaf_request_is_routed(yaf_request_t *instance TSRMLS_DC); -inline boolean yaf_request_is_dispatched(yaf_request_t *instance TSRMLS_DC); -inline boolean yaf_request_set_dispatched(yaf_request_t *instance, int flag TSRMLS_DC); -inline boolean yaf_request_set_routed(yaf_request_t *instance, int flag TSRMLS_DC); -inline boolean yaf_request_set_params_single(yaf_request_t *instance, char *key, int len, zval *value TSRMLS_DC); -inline boolean yaf_request_set_params_multi(yaf_request_t *instance, zval *values TSRMLS_DC); +inline int yaf_request_is_routed(zend_class_entry *ce, yaf_request_t *request TSRMLS_DC); +inline int yaf_request_is_dispatched(zend_class_entry *ce, yaf_request_t *request TSRMLS_DC); +inline int yaf_request_set_dispatched(zend_class_entry *ce, yaf_request_t *request, int flag TSRMLS_DC); +inline int yaf_request_set_routed(zend_class_entry *ce, yaf_request_t *request, int flag TSRMLS_DC); +inline int yaf_request_set_params_single(yaf_request_t *instance, char *key, int len, zval *value TSRMLS_DC); +inline int yaf_request_set_params_multi(yaf_request_t *instance, zval *values TSRMLS_DC); YAF_STARTUP_FUNCTION(request); Modified: pecl/yaf/trunk/yaf_response.c =================================================================== --- pecl/yaf/trunk/yaf_response.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_response.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -64,13 +64,13 @@ } /* }}} */ -/** {{{ boolean yaf_response_set_body(yaf_response_t *response, char *name, int name_len, char *body, long body_len TSRMLS_DC) +/** {{{ int yaf_response_set_body(yaf_response_t *response, char *name, int name_len, char *body, long body_len TSRMLS_DC) */ -boolean yaf_response_set_body(yaf_response_t *response, char *name, int name_len, char *body, long body_len TSRMLS_DC) { +int yaf_response_set_body(yaf_response_t *response, char *name, int name_len, char *body, long body_len TSRMLS_DC) { zval *zbody = NULL; if (!body_len) { - return TRUE; + return 1; } zbody = yaf_read_property(response, YAF_RESPONSE_PROPERTY_NAME_BODY); @@ -81,22 +81,22 @@ zbody = NULL; MAKE_STD_ZVAL(zbody); - ZVAL_STRINGL(zbody, body, body_len, TRUE); + ZVAL_STRINGL(zbody, body, body_len, 1); yaf_update_property(response, YAF_RESPONSE_PROPERTY_NAME_BODY, zbody); - return TRUE; + return 1; } /* }}} */ -/** {{{ boolean yaf_response_alter_body(yaf_response_t *response, char *name, int name_len, char *body, long body_len, boolean prepend TSRMLS_DC) +/** {{{ int yaf_response_alter_body(yaf_response_t *response, char *name, int name_len, char *body, long body_len, int prepend TSRMLS_DC) */ -boolean yaf_response_alter_body(yaf_response_t *response, char *name, int name_len, char *body, long body_len, boolean prepend TSRMLS_DC) { +int yaf_response_alter_body(yaf_response_t *response, char *name, int name_len, char *body, long body_len, int prepend TSRMLS_DC) { zval *zbody = NULL; char *obody = NULL; if (!body_len) { - return TRUE; + return 1; } zbody = yaf_read_property(response, YAF_RESPONSE_PROPERTY_NAME_BODY); @@ -110,40 +110,37 @@ efree(obody); - return TRUE; + return 1; } /* }}} */ -/** {{{ boolean yaf_response_clear_body(yaf_response_t *response TSRMLS_DC) +/** {{{ int yaf_response_clear_body(yaf_response_t *response TSRMLS_DC) */ -boolean yaf_response_clear_body(yaf_response_t *response TSRMLS_DC) { +int yaf_response_clear_body(yaf_response_t *response TSRMLS_DC) { zend_update_property_string(Z_OBJCE_P(response), response, YAF_STRL(YAF_RESPONSE_PROPERTY_NAME_BODY), "" TSRMLS_CC); - return TRUE; + return 1; } /* }}} */ -/** {{{ boolean yaf_response_set_redirect(yaf_response_t *response, char *url, int len TSRMLS_DC) +/** {{{ int yaf_response_set_redirect(yaf_response_t *response, char *url, int len TSRMLS_DC) */ -boolean yaf_response_set_redirect(yaf_response_t *response, char *url, int len TSRMLS_DC) { - +int yaf_response_set_redirect(yaf_response_t *response, char *url, int len TSRMLS_DC) { sapi_header_line ctr = {0}; ctr.line_len = spprintf(&(ctr.line), 0, "%s %s", "Location:", url); ctr.response_code = 0; - if (sapi_header_op(SAPI_HEADER_REPLACE, &ctr TSRMLS_CC) == SUCCESS) { efree(ctr.line); - return TRUE; + return 1; } - efree(ctr.line); - return FALSE; + return 0; } /* }}} */ -/** {{{ boolean yaf_response_send(yaf_response_t *response TSRMLS_DC) +/** {{{ int yaf_response_send(yaf_response_t *response TSRMLS_DC) */ -boolean yaf_response_send(yaf_response_t *response TSRMLS_DC) { +int yaf_response_send(yaf_response_t *response TSRMLS_DC) { zval *body = NULL; body = yaf_read_property(response, YAF_RESPONSE_PROPERTY_NAME_BODY); @@ -151,11 +148,11 @@ if (IS_STRING == Z_TYPE_P(body) && Z_STRLEN_P(body) > 0) { if (php_write(Z_STRVAL_P(body), Z_STRLEN_P(body) TSRMLS_CC) == FAILURE) { - return FALSE; + return 0; } } - return TRUE; + return 1; } /* }}} */ @@ -195,7 +192,7 @@ self = getThis(); - if (yaf_response_alter_body(self, name, name_len, body, body_len, FALSE TSRMLS_CC)) { + if (yaf_response_alter_body(self, name, name_len, body, body_len, 0 TSRMLS_CC)) { RETURN_ZVAL(self, 1, 0); } @@ -218,7 +215,7 @@ self = getThis(); - if (yaf_response_alter_body(self, name, name_len, body, body_len, TRUE TSRMLS_CC)) { + if (yaf_response_alter_body(self, name, name_len, body, body_len, 1 TSRMLS_CC)) { RETURN_ZVAL(self, 1, 0); } @@ -226,7 +223,7 @@ } /* }}} */ -/** {{{ proto public Yaf_Response_Abstract::setHeader($name, $value, $replace = FALSE) +/** {{{ proto public Yaf_Response_Abstract::setHeader($name, $value, $replace = 0) */ PHP_METHOD(yaf_response, setHeader) { } @@ -283,7 +280,7 @@ self = getThis(); - if (yaf_response_alter_body(self, name, name_len, body, body_len, FALSE TSRMLS_CC)) { + if (yaf_response_alter_body(self, name, name_len, body, body_len, 0 TSRMLS_CC)) { RETURN_ZVAL(self, 1, 0); } Modified: pecl/yaf/trunk/yaf_response.h =================================================================== --- pecl/yaf/trunk/yaf_response.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_response.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -28,10 +28,10 @@ extern zend_class_entry *yaf_response_cli_ce; yaf_response_t * yaf_response_instance(yaf_response_t *this_ptr, char *sapi_name TSRMLS_DC); -boolean yaf_response_alter_body(yaf_response_t *response, char *name, int name_len, char *body, long body_len, boolean prepend TSRMLS_DC); -boolean yaf_response_send(yaf_response_t *response TSRMLS_DC); -boolean yaf_response_set_redirect(yaf_response_t *response, char *url, int len TSRMLS_DC); -boolean yaf_response_clear_body(yaf_response_t *response TSRMLS_DC); +int yaf_response_alter_body(yaf_response_t *response, char *name, int name_len, char *body, long body_len, int prepend TSRMLS_DC); +int yaf_response_send(yaf_response_t *response TSRMLS_DC); +int yaf_response_set_redirect(yaf_response_t *response, char *url, int len TSRMLS_DC); +int yaf_response_clear_body(yaf_response_t *response TSRMLS_DC); YAF_STARTUP_FUNCTION(response); Modified: pecl/yaf/trunk/yaf_router.c =================================================================== --- pecl/yaf/trunk/yaf_router.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_router.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -12,8 +12,9 @@ +----------------------------------------------------------------------+ | Author: Xinchen Hui | +----------------------------------------------------------------------+ - $Id$ - */ +*/ + +/* $Id$ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -35,14 +36,14 @@ #include "yaf_config.h" #include "routes/interface.c" -zend_class_entry * yaf_router_ce; +zend_class_entry *yaf_router_ce; /** {{{ yaf_router_t * yaf_router_instance(yaf_router_t *this_ptr TSRMLS_DC) */ yaf_router_t * yaf_router_instance(yaf_router_t *this_ptr TSRMLS_DC) { - zval *routes = NULL; - yaf_router_t *instance = NULL; - yaf_route_t *route = NULL; + zval *routes; + yaf_router_t *instance; + yaf_route_t *route; if (this_ptr) { instance = this_ptr; @@ -55,28 +56,25 @@ array_init(routes); MAKE_STD_ZVAL(route); - object_init_ex(route, yaf_route_static_ce); - zend_hash_update(Z_ARRVAL_P(routes), "_default", sizeof("_default"), (void **)&route, sizeof(zval *), NULL); - yaf_update_property(instance, YAF_ROUTER_PROPERTY_NAME_ROUTERS, routes); + zend_update_property(yaf_router_ce, instance, ZEND_STRL(YAF_ROUTER_PROPERTY_NAME_ROUTERS), routes TSRMLS_CC); return instance; } /** }}} */ -/** {{{ boolean yaf_router_route(yaf_router_t *router, yaf_request_t *request TSRMLS_DC) +/** {{{ int yaf_router_route(yaf_router_t *router, yaf_request_t *request TSRMLS_DC) */ -boolean yaf_router_route(yaf_router_t *router, yaf_request_t *request TSRMLS_DC) { - zval *routers = NULL; - zval *ret = NULL; - HashTable *ht = NULL; - yaf_route_t **route = NULL; +int yaf_router_route(yaf_router_t *router, yaf_request_t *request TSRMLS_DC) { + zval *routers, *ret; + HashTable *ht; + yaf_route_t **route; - routers = yaf_read_property(router, YAF_ROUTER_PROPERTY_NAME_ROUTERS); - ht = Z_ARRVAL_P(routers); + routers = zend_read_property(yaf_router_ce, router, ZEND_STRL(YAF_ROUTER_PROPERTY_NAME_ROUTERS) TSRMLS_CC); + ht = Z_ARRVAL_P(routers); for(zend_hash_internal_pointer_end(ht); zend_hash_has_more_elements(ht) == SUCCESS; zend_hash_move_backwards(ht)) { @@ -85,38 +83,36 @@ continue; } - zend_call_method_with_1_params(route, Z_OBJCE_PP(route), NULL, "route", &ret, request); + zend_call_method_with_1_params(route, router_ce, NULL, "route", &ret, request); if (IS_BOOL != Z_TYPE_P(ret) || !Z_BVAL_P(ret)) { continue; } else { - char *key = NULL; - int len = 0; - long idx = 0; + char *key; + int len = 0; + long idx = 0; zend_hash_get_current_key_ex(ht, &key, &len, &idx, 0, NULL); if (len) { - zend_update_property_string(Z_OBJCE_P(router), router, YAF_STRL(YAF_ROUTER_PROPERTY_NAME_CURRENT_ROUTE), key TSRMLS_CC); + zend_update_property_string(yaf_router_ce, router, ZEND_STRL(YAF_ROUTER_PROPERTY_NAME_CURRENT_ROUTE), key TSRMLS_CC); } - yaf_request_set_routed(request, TRUE TSRMLS_CC); - return TRUE; + return 1; } } - - return FALSE; + return 0; } /* }}} */ -/** {{{ boolean yaf_router_add_config(yaf_router_t *router, zval *configs TSRMLS_DC) +/** {{{ int yaf_router_add_config(yaf_router_t *router, zval *configs TSRMLS_DC) */ -boolean yaf_router_add_config(yaf_router_t *router, zval *configs TSRMLS_DC) { - HashTable *ht = NULL; - yaf_route_t *route = NULL; - zval **entry = NULL; +int yaf_router_add_config(yaf_router_t *router, zval *configs TSRMLS_DC) { + zval **entry; + HashTable *ht; + yaf_route_t *route; if (!configs || IS_ARRAY != Z_TYPE_P(configs)) { - return FALSE; + return 0; } else { char *key = NULL; int len = 0; @@ -143,11 +139,11 @@ route = yaf_route_instance(NULL, *entry TSRMLS_CC); if (route) { - zval *routes = yaf_read_property(router, YAF_ROUTER_PROPERTY_NAME_ROUTERS); + zval *routes = zend_read_property(yaf_router_ce, router, ZEND_STRL(YAF_ROUTER_PROPERTY_NAME_ROUTERS), 0 TSRMLS_CC); zend_hash_update(Z_ARRVAL_P(routes), key, len, (void **)&route, sizeof(zval *), NULL); } } - return TRUE; + return 1; } } /* }}} */ @@ -155,25 +151,20 @@ /** {{{ zval * yaf_router_parse_parameters(char *uri TSRMLS_DC) */ zval * yaf_router_parse_parameters(char *uri TSRMLS_DC) { - char *key = NULL; - char *ptrptr = NULL; - char *tmp = NULL; - char *value = NULL; - zval *params = NULL; - char *slash = YAF_ROUTER_URL_DELIMIETER; - int key_len = 0; - zval *val = NULL; + char *key, *ptrptr, *tmp, *value; + zval *params, *val; + uint key_len; MAKE_STD_ZVAL(params); array_init(params); tmp = estrdup(uri); - key = php_strtok_r(tmp, slash, &ptrptr); + key = php_strtok_r(tmp, YAF_ROUTER_URL_DELIMIETER, &ptrptr); while (key) { key_len = strlen(key); if (key_len) { MAKE_STD_ZVAL(val); - value = php_strtok_r(NULL, slash, &ptrptr); + value = php_strtok_r(NULL, YAF_ROUTER_URL_DELIMIETER, &ptrptr); if (value && strlen(value)) { ZVAL_STRING(val, value, 1); } else { @@ -182,7 +173,7 @@ zend_hash_update(Z_ARRVAL_P(params), key, key_len + 1, (void **)&val, sizeof(zval *), NULL); } - key = php_strtok_r(NULL, slash, &ptrptr); + key = php_strtok_r(NULL, YAF_ROUTER_URL_DELIMIETER, &ptrptr); } efree(tmp); @@ -201,10 +192,10 @@ /** {{{ proto public Yaf_Router::route(Yaf_Request $req) */ PHP_METHOD(yaf_router, route) { - yaf_request_t *request = NULL; + yaf_request_t *request; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &request) == FAILURE) { - WRONG_PARAM_COUNT; + return; } else { RETURN_BOOL(yaf_router_route(getThis(), request TSRMLS_CC)); } @@ -214,13 +205,13 @@ /** {{{ proto public Yaf_Router::addRoute(string $name, Yaf_Route_Interface $route) */ PHP_METHOD(yaf_router, addRoute) { - char *name = NULL; - int len = 0; - yaf_route_t *route = NULL; - zval *routes = NULL; + char *name; + zval *routes; + yaf_route_t *route; + uint len = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz", &name, &len, &route) == FAILURE) { - WRONG_PARAM_COUNT; + return; } if (!len) { @@ -229,11 +220,11 @@ if (IS_OBJECT != Z_TYPE_P(route) || !instanceof_function(Z_OBJCE_P(route), yaf_route_ce TSRMLS_CC)) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s::addRoute expects a %s instance", yaf_router_ce->name, yaf_route_ce->name); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expects a %s instance", yaf_route_ce->name); RETURN_FALSE; } - routes = yaf_read_property(getThis(), YAF_ROUTER_PROPERTY_NAME_ROUTERS); + routes = zend_read_property(yaf_router_ce, getThis(), ZEND_STRL(YAF_ROUTER_PROPERTY_NAME_ROUTERS), 0 TSRMLS_CC); Z_ADDREF_P(route); zend_hash_update(Z_ARRVAL_P(routes), name, len + 1, (void **)&route, sizeof(zval *), NULL); @@ -245,22 +236,20 @@ /** {{{ proto public Yaf_Router::addConfig(Yaf_Config_Abstract $config) */ PHP_METHOD(yaf_router, addConfig) { - yaf_config_t *config = NULL; - zval *routes = NULL; + yaf_config_t *config; + zval *routes; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &config) == FAILURE) { - WRONG_PARAM_COUNT; + return; } - if (IS_OBJECT != Z_TYPE_P(config) - || !instanceof_function(Z_OBJCE_P(config), yaf_config_ce TSRMLS_CC)) { - yaf_trigger_error(YAF_ERR_TYPE_ERROR, "%s::addConfig expects a %s instance", yaf_router_ce->name, yaf_config_ce->name); + if (IS_OBJECT != Z_TYPE_P(config) || !instanceof_function(Z_OBJCE_P(config), yaf_config_ce TSRMLS_CC)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expect a %s instance", yaf_config_ce->name); RETURN_FALSE; } - Z_ADDREF_P(config); - routes = yaf_read_property(config, YAF_CONFIG_PROPERT_NAME); + routes = zend_read_property(Z_OBJCE_P(config), config, ZEND_STRL(YAF_CONFIG_PROPERT_NAME), 0 TSRMLS_CC); if (yaf_router_add_config(getThis(), routes TSRMLS_CC)) { RETURN_ZVAL(getThis(), 1, 0); @@ -273,20 +262,20 @@ /** {{{ proto public Yaf_Router::getRoute(string $name) */ PHP_METHOD(yaf_router, getRoute) { - char *name = NULL; - int len = 0; - yaf_route_t **route = NULL; - zval *routes = NULL; + char *name; + uint len; + zval *routes; + yaf_route_t **route; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &len) == FAILURE) { - WRONG_PARAM_COUNT; + return; } if (!len) { RETURN_FALSE; } - routes = yaf_read_property(getThis(), YAF_ROUTER_PROPERTY_NAME_ROUTERS); + routes = zend_read_property(yaf_router_ce, getThis(), ZEND_STRL(YAF_ROUTER_PROPERTY_NAME_ROUTERS), 0 TSRMLS_CC); if (zend_hash_find(Z_ARRVAL_P(routes), name, len + 1, (void **)&route) == SUCCESS) { RETURN_ZVAL(*route, 1, 0); @@ -299,10 +288,7 @@ /** {{{ proto public Yaf_Router::getRoutes(void) */ PHP_METHOD(yaf_router, getRoutes) { - zval *routes = NULL; - - routes = yaf_read_property(getThis(), YAF_ROUTER_PROPERTY_NAME_ROUTERS); - + zval * routes = zend_read_property(yaf_router_ce, getThis(), ZEND_STRL(YAF_ROUTER_PROPERTY_NAME_ROUTERS), 0 TSRMLS_CC); RETURN_ZVAL(routes, 1, 0); } /* }}} */ @@ -310,11 +296,11 @@ /** {{{ proto public Yaf_Router::isModuleName(string $name) */ PHP_METHOD(yaf_router, isModuleName) { - char *name = NULL; - int len = 0; + char *name; + uint len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &len) == FAILURE) { - WRONG_PARAM_COUNT; + return; } RETURN_BOOL(yaf_application_is_module_name(name, len TSRMLS_CC)); @@ -324,10 +310,7 @@ /** {{{ proto public Yaf_Router::getCurrentRoute(void) */ PHP_METHOD(yaf_router, getCurrentRoute) { - zval *route = NULL; - - route = yaf_read_property(getThis(), YAF_ROUTER_PROPERTY_NAME_CURRENT_ROUTE); - + zval *route = zend_read_property(yaf_router_ce, getThis(), ZEND_STRL(YAF_ROUTER_PROPERTY_NAME_CURRENT_ROUTE), 0 TSRMLS_CC); RETURN_ZVAL(route, 1, 0); } /* }}} */ Modified: pecl/yaf/trunk/yaf_router.h =================================================================== --- pecl/yaf/trunk/yaf_router.h 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_router.h 2011-08-25 17:35:15 UTC (rev 315484) @@ -18,14 +18,19 @@ #ifndef YAF_ROUTER_H #define YAF_ROUTER_H +#define YAF_ROUTER_DEFAULT_ACTION "index" +#define YAF_ROUTER_DEFAULT_CONTROLLER "Index" +#define YAF_ROUTER_DEFAULT_MODULE "Index" +#define YAF_DEFAULT_EXT "php" + #define YAF_ROUTER_PROPERTY_NAME_ROUTERS "_routes" #define YAF_ROUTER_PROPERTY_NAME_CURRENT_ROUTE "_current" extern zend_class_entry * yaf_router_ce; yaf_router_t * yaf_router_instance(yaf_router_t *this_ptr TSRMLS_DC); -boolean yaf_router_route(yaf_router_t *router, yaf_request_t *request TSRMLS_DC); zval * yaf_router_parse_parameters(char *uri TSRMLS_DC); +int yaf_router_route(yaf_router_t *router, yaf_request_t *request TSRMLS_DC); YAF_STARTUP_FUNCTION(router); #endif Modified: pecl/yaf/trunk/yaf_session.c =================================================================== --- pecl/yaf/trunk/yaf_session.c 2011-08-25 15:46:09 UTC (rev 315483) +++ pecl/yaf/trunk/yaf_session.c 2011-08-25 17:35:15 UTC (rev 315484) @@ -32,6 +32,9 @@ #include "yaf_exception.h" zend_class_entry * yaf_session_ce; +#ifdef HAVE_SPL +extern PHPAPI zend_class_entry * spl_ce_Countable; +#endif /* {{{ YAF_ARG_INFO */ @@ -45,19 +48,19 @@ YAF_END_ARG_INFO() /* }}} */ -/** {{{ inline boolean yaf_session_start(yaf_session_t *session TSRMLS_DC) +/** {{{ inline int yaf_session_start(yaf_session_t *session TSRMLS_DC) */ -inline boolean yaf_session_start(yaf_session_t *session TSRMLS_DC) { +inline int yaf_session_start(yaf_session_t *session TSRMLS_DC) { zval *status = NULL; status = yaf_read_property(session, YAF_SESSION_PROPERTY_NAME_STATUS); if (Z_BVAL_P(status)) { - return TRUE; + return 1; } php_session_start(TSRMLS_C); - zend_update_property_bool(yaf_session_ce, session, YAF_STRL(YAF_SESSION_PROPERTY_NAME_STATUS), TRUE TSRMLS_CC); - return TRUE; + zend_update_property_bool(yaf_session_ce, session, YAF_STRL(YAF_SESSION_PROPERTY_NAME_STATUS), 1 TSRMLS_CC); + return 1; } /* }}} */ @@ -92,7 +95,7 @@ obj = zend_objects_get_address(instance TSRMLS_CC); - property_info = zend_get_property_info(obj->ce, member, TRUE TSRMLS_CC); + property_info = zend_get_property_info(obj->ce, member, 1 TSRMLS_CC); Z_ADDREF_P(*sess); /** This is ugly , because we can't set a ref property through the stadard APIs */ @@ -420,7 +423,7 @@ zend_declare_property_null(yaf_session_ce, YAF_STRL(YAF_SESSION_PROPERTY_NAME_INSTANCE), ZEND_ACC_PROTECTED|ZEND_ACC_STATIC TSRMLS_CC); zend_declare_property_null(yaf_session_ce, YAF_STRL(YAF_SESSION_PROPERTY_NAME_SESSION), ZEND_ACC_PROTECTED TSRMLS_CC); - zend_declare_property_bool(yaf_session_ce, YAF_STRL(YAF_SESSION_PROPERTY_NAME_STATUS), FALSE, ZEND_ACC_PROTECTED TSRMLS_CC); + zend_declare_property_bool(yaf_session_ce, YAF_STRL(YAF_SESSION_PROPERTY_NAME_STATUS), 0, ZEND_ACC_PROTECTED TSRMLS_CC); return SUCCESS; }