/** * Mounts a group of routes in the router * * @param Test\Router\Group route * @return Test\Router */ PHP_METHOD(Test_Router, mount) { HashTable *_1, *_4; HashPosition _0, _3; int ZEPHIR_LAST_CALL_STATUS; zval *group, *groupRoutes = NULL, *beforeMatch = NULL, *hostname = NULL, *routes, *route = NULL, **_2, **_5, *_6; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &group); if (Z_TYPE_P(group) != IS_OBJECT) { ZEPHIR_THROW_EXCEPTION_STR(test_router_exception_ce, "The group of routes is not valid"); return; } ZEPHIR_CALL_METHOD(&groupRoutes, group, "getroutes", NULL); zephir_check_call_status(); if (!(zephir_fast_count_int(groupRoutes TSRMLS_CC))) { ZEPHIR_THROW_EXCEPTION_STR(test_router_exception_ce, "The group of routes does not contain any routes"); return; } ZEPHIR_CALL_METHOD(&beforeMatch, group, "getbeforematch", NULL); zephir_check_call_status(); if (Z_TYPE_P(beforeMatch) != IS_NULL) { zephir_is_iterable(groupRoutes, &_1, &_0, 0, 0); for ( ; zephir_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS ; zephir_hash_move_forward_ex(_1, &_0) ) { ZEPHIR_GET_HVALUE(route, _2); ZEPHIR_CALL_METHOD(NULL, route, "beforematch", NULL, beforeMatch); zephir_check_call_status(); } } ZEPHIR_CALL_METHOD(&hostname, group, "gethostname", NULL); zephir_check_call_status(); if (Z_TYPE_P(hostname) != IS_NULL) { zephir_is_iterable(groupRoutes, &_4, &_3, 0, 0); for ( ; zephir_hash_get_current_data_ex(_4, (void**) &_5, &_3) == SUCCESS ; zephir_hash_move_forward_ex(_4, &_3) ) { ZEPHIR_GET_HVALUE(route, _5); ZEPHIR_CALL_METHOD(NULL, route, "sethostname", NULL, hostname); zephir_check_call_status(); } } ZEPHIR_OBS_VAR(routes); zephir_read_property_this(&routes, this_ptr, SL("_routes"), PH_NOISY_CC); if (Z_TYPE_P(routes) == IS_ARRAY) { ZEPHIR_INIT_VAR(_6); zephir_fast_array_merge(_6, &(routes), &(groupRoutes) TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_routes"), _6 TSRMLS_CC); } else { zephir_update_property_this(this_ptr, SL("_routes"), groupRoutes TSRMLS_CC); } RETURN_THIS(); }
PHP_METHOD(Test_TryTest, testTry8) { int ZEPHIR_LAST_CALL_STATUS; zval *_0, *_1; ZEPHIR_MM_GROW(); /* try_start_1: */ ZEPHIR_INIT_VAR(_0); object_init_ex(_0, zend_exception_get_default(TSRMLS_C)); ZEPHIR_INIT_VAR(_1); ZVAL_STRING(_1, "error 1!", 0); ZEPHIR_CALL_METHOD(NULL, _0, "__construct", NULL, _1); zephir_check_temp_parameter(_1); zephir_check_call_status_or_jump(try_end_1); zephir_throw_exception(_0 TSRMLS_CC); goto try_end_1; try_end_1: zend_clear_exception(TSRMLS_C); ZEPHIR_THROW_EXCEPTION_STR(zend_exception_get_default(TSRMLS_C), "error 2!"); return; }
/** * Run a command that will talk to the connection * * @param Command command * @return boolean */ PHP_METHOD(ADOdb_Connection, execCommand) { zval *command; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &command); if (!(zephir_is_instance_of(command, SL("ADOdb\\Command") TSRMLS_CC))) { ZEPHIR_THROW_EXCEPTION_STR(spl_ce_InvalidArgumentException, "Parameter 'command' must be an instance of 'ADOdb\\Command'"); return; } zephir_call_method_p1(return_value, command, "execute", this_ptr); RETURN_MM(); }
PHP_METHOD(ADOdb_Cache, serializeStatement) { zval *statement, *_0, *_1, _2; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &statement); if (!(zephir_is_instance_of(statement, SL("ADOdb\\Statement") TSRMLS_CC))) { ZEPHIR_THROW_EXCEPTION_STR(spl_ce_InvalidArgumentException, "Parameter 'statement' must be an instance of 'ADOdb\\Statement'"); return; } ZEPHIR_INIT_VAR(_0); zephir_call_method(_0, statement, "dump"); ZEPHIR_INIT_VAR(_1); zephir_call_func_p1(_1, "serialize", _0); ZEPHIR_SINIT_VAR(_2); ZVAL_LONG(&_2, 3); zephir_call_func_p2(return_value, "gzcompress", _1, &_2); RETURN_MM(); }
/** * @param int fetchMode * @return type * @throws ConnectionException */ PHP_METHOD(ADOdb_Connection, setFetchMode) { zval *fetchMode, *_0; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &fetchMode); zephir_call_method_noret(this_ptr, "checkconnected"); do { if (ZEPHIR_IS_LONG(fetchMode, 0) || ZEPHIR_IS_LONG(fetchMode, 2) || ZEPHIR_IS_LONG(fetchMode, 1) || ZEPHIR_IS_LONG(fetchMode, 3)) { _0 = zephir_fetch_nproperty_this(this_ptr, SL("connection"), PH_NOISY_CC); zephir_call_method_p1(return_value, _0, "setfetchmode", fetchMode); RETURN_MM(); } ZEPHIR_THROW_EXCEPTION_STR(adodb_connectionexception_ce, "Invalid fetch mode value"); return; } while(0); ZEPHIR_MM_RESTORE(); }
PHP_METHOD(ADOdb_Cache, unserializeStatement) { zval *serializedStatement, *rawSt, *_0; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &serializedStatement); ZEPHIR_INIT_VAR(_0); zephir_call_func_p1(_0, "gzuncompress", serializedStatement); ZEPHIR_INIT_VAR(rawSt); zephir_call_func_p1(rawSt, "unserialize", _0); if (!ZEPHIR_IS_FALSE(rawSt)) { object_init_ex(return_value, adodb_driver_cache_statement_ce); zephir_call_method_p1_noret(return_value, "__construct", rawSt); RETURN_MM(); } else { ZEPHIR_THROW_EXCEPTION_STR(adodb_exception_ce, "Unserialize error"); return; } ZEPHIR_MM_RESTORE(); }
PHP_METHOD(Test_SpectralNorm, Au) { zephir_fcall_cache_entry *_11 = NULL, *_13 = NULL; zephir_nts_static zephir_fcall_cache_entry *_9 = NULL; zend_bool _0, _3; zval *n_param = NULL, *u, *v, *_6 = NULL, *_7 = NULL, *_8 = NULL, *_10 = NULL, *_12 = NULL; int n, t, i, j, _1, _2, _4, _5, ZEPHIR_LAST_CALL_STATUS; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &n_param, &u, &v); n = zephir_get_intval(n_param); if (!(zephir_instance_of_ev(u, spl_ce_SplFixedArray TSRMLS_CC))) { ZEPHIR_THROW_EXCEPTION_STR(spl_ce_InvalidArgumentException, "Parameter 'u' must be an instance of 'SplFixedArray'"); return; } if (!(zephir_instance_of_ev(v, spl_ce_SplFixedArray TSRMLS_CC))) { ZEPHIR_THROW_EXCEPTION_STR(spl_ce_InvalidArgumentException, "Parameter 'v' must be an instance of 'SplFixedArray'"); return; } _2 = (n - 1); _1 = 0; _0 = 0; if ((_1 <= _2)) { while (1) { if (_0) { _1++; if (!((_1 <= _2))) { break; } } else { _0 = 1; } i = _1; t = 0; _5 = (n - 1); _4 = 0; _3 = 0; if ((_4 <= _5)) { while (1) { if (_3) { _4++; if (!((_4 <= _5))) { break; } } else { _3 = 1; } j = _4; ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, i); ZEPHIR_INIT_NVAR(_8); ZVAL_LONG(_8, j); ZEPHIR_CALL_METHOD(&_6, this_ptr, "ax", &_9, _7, _8); zephir_check_call_status(); ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, j); ZEPHIR_CALL_METHOD(&_10, u, "offsetget", &_11, _7); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_12); mul_function(_12, _6, _10 TSRMLS_CC); t += zephir_get_numberval(_12); } } ZEPHIR_INIT_NVAR(_7); ZVAL_LONG(_7, i); ZEPHIR_INIT_NVAR(_8); ZVAL_LONG(_8, t); ZEPHIR_CALL_METHOD(NULL, v, "offsetset", &_13, _7, _8); zephir_check_call_status(); } } ZEPHIR_MM_RESTORE(); }
/** * Reconfigure the route adding a new pattern and a set of paths * * @param string pattern * @param array paths */ PHP_METHOD(Test_Router_Route, reConfigure) { int _1; zval *pattern, *paths = NULL, *moduleName = NULL, *controllerName = NULL, *actionName = NULL, *parts, *routePaths = NULL, *realClassName = NULL, *namespaceName, *pcrePattern = NULL, *compiledPattern = NULL, *extracted, _0, *_2 = NULL, *_3; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 1, &pattern, &paths); if (!paths) { ZEPHIR_CPY_WRT(paths, ZEPHIR_GLOBAL(global_null)); } if ((Z_TYPE_P(pattern) != IS_STRING)) { ZEPHIR_THROW_EXCEPTION_STR(test_router_exception_ce, "The pattern must be string"); return; } if ((Z_TYPE_P(paths) != IS_NULL)) { if ((Z_TYPE_P(paths) == IS_STRING)) { ZEPHIR_INIT_VAR(moduleName); ZVAL_NULL(moduleName); ZEPHIR_INIT_VAR(controllerName); ZVAL_NULL(controllerName); ZEPHIR_INIT_VAR(actionName); ZVAL_NULL(actionName); ZEPHIR_SINIT_VAR(_0); ZVAL_STRING(&_0, "::", 0); ZEPHIR_INIT_VAR(parts); zephir_call_func_p2(parts, "explode", &_0, paths); do { _1 = zephir_fast_count_int(parts TSRMLS_CC); if ((_1 == 3)) { ZEPHIR_OBS_NVAR(moduleName); zephir_array_fetch_long(&moduleName, parts, 0, PH_NOISY TSRMLS_CC); ZEPHIR_OBS_NVAR(controllerName); zephir_array_fetch_long(&controllerName, parts, 1, PH_NOISY TSRMLS_CC); ZEPHIR_OBS_NVAR(actionName); zephir_array_fetch_long(&actionName, parts, 2, PH_NOISY TSRMLS_CC); break; } if ((_1 == 2)) { ZEPHIR_OBS_NVAR(controllerName); zephir_array_fetch_long(&controllerName, parts, 0, PH_NOISY TSRMLS_CC); ZEPHIR_OBS_NVAR(actionName); zephir_array_fetch_long(&actionName, parts, 1, PH_NOISY TSRMLS_CC); break; } if ((_1 == 1)) { ZEPHIR_OBS_NVAR(controllerName); zephir_array_fetch_long(&controllerName, parts, 0, PH_NOISY TSRMLS_CC); break; } } while(0); ZEPHIR_INIT_VAR(routePaths); array_init(routePaths); if ((Z_TYPE_P(moduleName) != IS_NULL)) { zephir_array_update_string(&routePaths, SL("module"), &moduleName, PH_COPY | PH_SEPARATE); } if ((Z_TYPE_P(controllerName) != IS_NULL)) { if (zephir_memnstr_str(controllerName, SL("\\"), "test/router/route.zep", 313)) { ZEPHIR_INIT_VAR(realClassName); zephir_call_func_p1(realClassName, "get_class_ns", controllerName); ZEPHIR_INIT_VAR(namespaceName); zephir_call_func_p1(namespaceName, "get_ns_class", controllerName); if (zephir_is_true(namespaceName)) { zephir_array_update_string(&routePaths, SL("namespace"), &namespaceName, PH_COPY | PH_SEPARATE); } } else { ZEPHIR_CPY_WRT(realClassName, controllerName); } ZEPHIR_INIT_VAR(_2); zephir_uncamelize(_2, realClassName); zephir_array_update_string(&routePaths, SL("controller"), &_2, PH_COPY | PH_SEPARATE); } if ((Z_TYPE_P(actionName) != IS_NULL)) { zephir_array_update_string(&routePaths, SL("action"), &actionName, PH_COPY | PH_SEPARATE); } } else { ZEPHIR_CPY_WRT(routePaths, paths); } } else { ZEPHIR_INIT_NVAR(routePaths); array_init(routePaths); } if ((Z_TYPE_P(routePaths) != IS_ARRAY)) { ZEPHIR_THROW_EXCEPTION_STR(test_router_exception_ce, "The route contains invalid paths"); return; } if (!(zephir_start_with_str(pattern, SL("#")))) { if (zephir_memnstr_str(pattern, SL("{"), "test/router/route.zep", 351)) { ZEPHIR_INIT_VAR(extracted); zephir_call_method_p1(extracted, this_ptr, "extractnamedparams", pattern); ZEPHIR_OBS_VAR(pcrePattern); zephir_array_fetch_long(&pcrePattern, extracted, 0, PH_NOISY TSRMLS_CC); ZEPHIR_INIT_NVAR(_2); zephir_array_fetch_long(&_3, extracted, 1, PH_NOISY | PH_READONLY TSRMLS_CC); zephir_fast_array_merge(_2, &(routePaths), &(_3) TSRMLS_CC); ZEPHIR_CPY_WRT(routePaths, _2); } else { ZEPHIR_CPY_WRT(pcrePattern, pattern); } ZEPHIR_INIT_VAR(compiledPattern); zephir_call_method_p1(compiledPattern, this_ptr, "compilepattern", pcrePattern); } else { ZEPHIR_CPY_WRT(compiledPattern, pattern); } zephir_update_property_this(this_ptr, SL("_pattern"), pattern TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_compiledPattern"), compiledPattern TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_paths"), routePaths TSRMLS_CC); ZEPHIR_MM_RESTORE(); }
/** * Handles routing information received from the rewrite engine * *<code> * //Read the info from the rewrite engine * $router->handle(); * * //Manually passing an URL * $router->handle('/posts/edit/1'); *</code> * * @param string uri */ PHP_METHOD(Test_Router, handle) { zephir_nts_static zephir_fcall_cache_entry *_12 = NULL; HashTable *_2, *_9; HashPosition _1, _8; int ZEPHIR_LAST_CALL_STATUS; zval *uri = NULL, *realUri = NULL, *request = NULL, *currentHostName = NULL, *routeFound = NULL, *parts = NULL, *params, *matches, *notFoundPaths, *vnamespace, *module, *controller, *action, *paramsStr, *strParams = NULL, *paramsMerge = NULL, *route = NULL, *methods = NULL, *dependencyInjector = NULL, *hostname = NULL, *regexHostName = NULL, *matched = NULL, *pattern = NULL, *handledUri = NULL, *beforeMatch = NULL, *paths = NULL, *converters = NULL, *part = NULL, *position = NULL, *matchPosition = NULL, *_0, **_3, *_4, *_5 = NULL, *_6 = NULL, *_7 = NULL, **_10, _11, *_13, *_14, *_15, *_16; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 1, &uri); if (!uri) { uri = ZEPHIR_GLOBAL(global_null); } if (!(zephir_is_true(uri))) { ZEPHIR_CALL_METHOD(&realUri, this_ptr, "getrewriteuri", NULL); zephir_check_call_status(); } else { ZEPHIR_CPY_WRT(realUri, uri); } _0 = zephir_fetch_nproperty_this(this_ptr, SL("_removeExtraSlashes"), PH_NOISY_CC); if (zephir_is_true(_0)) { ZEPHIR_CALL_METHOD(&handledUri, this_ptr, "doremoveextraslashes", NULL, realUri); zephir_check_call_status(); } else { ZEPHIR_CPY_WRT(handledUri, realUri); } ZEPHIR_INIT_VAR(request); ZVAL_NULL(request); ZEPHIR_INIT_VAR(currentHostName); ZVAL_NULL(currentHostName); ZEPHIR_INIT_VAR(routeFound); ZVAL_BOOL(routeFound, 0); ZEPHIR_INIT_VAR(parts); array_init(parts); ZEPHIR_INIT_VAR(params); array_init(params); ZEPHIR_INIT_VAR(matches); ZVAL_NULL(matches); zephir_update_property_this(this_ptr, SL("_wasMatched"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_matchedRoute"), ZEPHIR_GLOBAL(global_null) TSRMLS_CC); _0 = zephir_fetch_nproperty_this(this_ptr, SL("_routes"), PH_NOISY_CC); zephir_is_iterable(_0, &_2, &_1, 0, 1); for ( ; zephir_hash_get_current_data_ex(_2, (void**) &_3, &_1) == SUCCESS ; zephir_hash_move_backwards_ex(_2, &_1) ) { ZEPHIR_GET_HVALUE(route, _3); ZEPHIR_CALL_METHOD(&methods, route, "gethttpmethods", NULL); zephir_check_call_status(); if (Z_TYPE_P(methods) != IS_NULL) { if (Z_TYPE_P(request) == IS_NULL) { _4 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); ZEPHIR_CPY_WRT(dependencyInjector, _4); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { ZEPHIR_THROW_EXCEPTION_STR(test_router_exception_ce, "A dependency injection container is required to access the 'request' service"); return; } ZEPHIR_INIT_NVAR(_5); ZVAL_STRING(_5, "request", 0); ZEPHIR_CALL_METHOD(&request, dependencyInjector, "getshared", NULL, _5); zephir_check_temp_parameter(_5); zephir_check_call_status(); } ZEPHIR_CALL_METHOD(&_6, request, "ismethod", NULL, methods); zephir_check_call_status(); if (ZEPHIR_IS_FALSE(_6)) { continue; } } ZEPHIR_CALL_METHOD(&hostname, route, "gethostname", NULL); zephir_check_call_status(); if (Z_TYPE_P(hostname) != IS_NULL) { if (Z_TYPE_P(request) == IS_NULL) { ZEPHIR_OBS_NVAR(dependencyInjector); zephir_read_property_this(&dependencyInjector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { ZEPHIR_THROW_EXCEPTION_STR(test_router_exception_ce, "A dependency injection container is required to access the 'request' service"); return; } ZEPHIR_INIT_NVAR(_5); ZVAL_STRING(_5, "request", 0); ZEPHIR_CALL_METHOD(&request, dependencyInjector, "getshared", NULL, _5); zephir_check_temp_parameter(_5); zephir_check_call_status(); } if (Z_TYPE_P(currentHostName) != IS_OBJECT) { ZEPHIR_CALL_METHOD(¤tHostName, request, "gethttphost", NULL); zephir_check_call_status(); } if (Z_TYPE_P(currentHostName) != IS_NULL) { continue; } ZEPHIR_INIT_NVAR(matched); if (zephir_memnstr_str(hostname, SL("("), "test/router.zep", 381)) { if (zephir_memnstr_str(hostname, SL("#"), "test/router.zep", 382)) { ZEPHIR_INIT_NVAR(regexHostName); ZEPHIR_CONCAT_SVS(regexHostName, "#^", hostname, "$#"); } else { ZEPHIR_CPY_WRT(regexHostName, hostname); } ZEPHIR_INIT_NVAR(_7); zephir_preg_match(matched, &(matched), regexHostName, currentHostName, _7, 0, 0 , 0 TSRMLS_CC); } else { ZVAL_BOOL(matched, ZEPHIR_IS_EQUAL(currentHostName, hostname)); } if (!(zephir_is_true(matched))) { continue; } } ZEPHIR_CALL_METHOD(&pattern, route, "getcompiledpattern", NULL); zephir_check_call_status(); ZEPHIR_INIT_NVAR(routeFound); if (zephir_memnstr_str(pattern, SL("^"), "test/router.zep", 400)) { zephir_preg_match(routeFound, &(routeFound), pattern, handledUri, matches, 0, 0 , 0 TSRMLS_CC); } else { ZVAL_BOOL(routeFound, ZEPHIR_IS_EQUAL(pattern, handledUri)); } if (zephir_is_true(routeFound)) { ZEPHIR_CALL_METHOD(&beforeMatch, route, "getbeforematch", NULL); zephir_check_call_status(); if (Z_TYPE_P(beforeMatch) != IS_NULL) { if (zephir_is_callable(beforeMatch TSRMLS_CC)) { ZEPHIR_THROW_EXCEPTION_STR(test_router_exception_ce, "Before-Match callback is not callable in matched route"); return; } } } if (zephir_is_true(routeFound)) { ZEPHIR_CALL_METHOD(&paths, route, "getpaths", NULL); zephir_check_call_status(); ZEPHIR_CPY_WRT(parts, paths); if (Z_TYPE_P(matches) == IS_ARRAY) { ZEPHIR_CALL_METHOD(&converters, route, "getconverters", NULL); zephir_check_call_status(); zephir_is_iterable(paths, &_9, &_8, 0, 0); for ( ; zephir_hash_get_current_data_ex(_9, (void**) &_10, &_8) == SUCCESS ; zephir_hash_move_forward_ex(_9, &_8) ) { ZEPHIR_GET_HMKEY(part, _9, _8); ZEPHIR_GET_HVALUE(position, _10); ZEPHIR_OBS_NVAR(matchPosition); if (zephir_array_isset_fetch(&matchPosition, matches, position, 0 TSRMLS_CC)) { if (Z_TYPE_P(converters) == IS_ARRAY) { if (zephir_array_isset(converters, part)) { continue; } } zephir_array_update_zval(&parts, part, &matchPosition, PH_COPY | PH_SEPARATE); } else { if (Z_TYPE_P(converters) == IS_ARRAY) { if (zephir_array_isset(converters, part)) { } } } } zephir_update_property_this(this_ptr, SL("_matches"), matches TSRMLS_CC); } zephir_update_property_this(this_ptr, SL("_matchedRoute"), route TSRMLS_CC); break; } } if (zephir_is_true(routeFound)) { zephir_update_property_this(this_ptr, SL("_wasMatched"), (1) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); } else { zephir_update_property_this(this_ptr, SL("_wasMatched"), (0) ? ZEPHIR_GLOBAL(global_true) : ZEPHIR_GLOBAL(global_false) TSRMLS_CC); } if (!(zephir_is_true(routeFound))) { ZEPHIR_OBS_VAR(notFoundPaths); zephir_read_property_this(¬FoundPaths, this_ptr, SL("_notFoundPaths"), PH_NOISY_CC); if (Z_TYPE_P(notFoundPaths) != IS_NULL) { ZEPHIR_CPY_WRT(parts, notFoundPaths); ZEPHIR_INIT_BNVAR(routeFound); ZVAL_BOOL(routeFound, 1); } } if (zephir_is_true(routeFound)) { ZEPHIR_OBS_VAR(vnamespace); if (zephir_array_isset_string_fetch(&vnamespace, parts, SS("namespace"), 0 TSRMLS_CC)) { if (!(zephir_is_numeric(vnamespace))) { zephir_update_property_this(this_ptr, SL("_namespace"), vnamespace TSRMLS_CC); } zephir_array_unset_string(&parts, SS("namespace"), PH_SEPARATE); } else { _4 = zephir_fetch_nproperty_this(this_ptr, SL("_defaultNamespace"), PH_NOISY_CC); zephir_update_property_this(this_ptr, SL("_namespace"), _4 TSRMLS_CC); } ZEPHIR_OBS_VAR(module); if (zephir_array_isset_string_fetch(&module, parts, SS("module"), 0 TSRMLS_CC)) { if (!(zephir_is_numeric(module))) { zephir_update_property_this(this_ptr, SL("_module"), module TSRMLS_CC); } zephir_array_unset_string(&parts, SS("module"), PH_SEPARATE); } else { _4 = zephir_fetch_nproperty_this(this_ptr, SL("_defaultModule"), PH_NOISY_CC); zephir_update_property_this(this_ptr, SL("_module"), _4 TSRMLS_CC); } ZEPHIR_OBS_VAR(controller); if (zephir_array_isset_string_fetch(&controller, parts, SS("controller"), 0 TSRMLS_CC)) { if (!(zephir_is_numeric(controller))) { zephir_update_property_this(this_ptr, SL("_controller"), controller TSRMLS_CC); } zephir_array_unset_string(&parts, SS("controller"), PH_SEPARATE); } else { _4 = zephir_fetch_nproperty_this(this_ptr, SL("_defaultController"), PH_NOISY_CC); zephir_update_property_this(this_ptr, SL("_controller"), _4 TSRMLS_CC); } ZEPHIR_OBS_VAR(action); if (zephir_array_isset_string_fetch(&action, parts, SS("action"), 0 TSRMLS_CC)) { if (!(zephir_is_numeric(action))) { zephir_update_property_this(this_ptr, SL("_action"), action TSRMLS_CC); } zephir_array_unset_string(&parts, SS("action"), PH_SEPARATE); } else { _4 = zephir_fetch_nproperty_this(this_ptr, SL("_defaultAction"), PH_NOISY_CC); zephir_update_property_this(this_ptr, SL("_action"), _4 TSRMLS_CC); } ZEPHIR_OBS_VAR(paramsStr); if (zephir_array_isset_string_fetch(¶msStr, parts, SS("params"), 0 TSRMLS_CC)) { ZEPHIR_SINIT_VAR(_11); ZVAL_LONG(&_11, 1); ZEPHIR_CALL_FUNCTION(&strParams, "substr", &_12, paramsStr, &_11); zephir_check_call_status(); if (zephir_is_true(strParams)) { ZEPHIR_INIT_BNVAR(params); zephir_fast_explode_str(params, SL("/"), strParams, LONG_MAX TSRMLS_CC); } zephir_array_unset_string(&parts, SS("params"), PH_SEPARATE); } if (zephir_fast_count_int(params TSRMLS_CC)) { ZEPHIR_INIT_VAR(paramsMerge); zephir_fast_array_merge(paramsMerge, &(params), &(parts) TSRMLS_CC); } else { ZEPHIR_CPY_WRT(paramsMerge, parts); } zephir_update_property_this(this_ptr, SL("_params"), paramsMerge TSRMLS_CC); } else { _4 = zephir_fetch_nproperty_this(this_ptr, SL("_defaultNamespace"), PH_NOISY_CC); zephir_update_property_this(this_ptr, SL("_namespace"), _4 TSRMLS_CC); _13 = zephir_fetch_nproperty_this(this_ptr, SL("_defaultModule"), PH_NOISY_CC); zephir_update_property_this(this_ptr, SL("_module"), _13 TSRMLS_CC); _14 = zephir_fetch_nproperty_this(this_ptr, SL("_defaultController"), PH_NOISY_CC); zephir_update_property_this(this_ptr, SL("_controller"), _14 TSRMLS_CC); _15 = zephir_fetch_nproperty_this(this_ptr, SL("_defaultAction"), PH_NOISY_CC); zephir_update_property_this(this_ptr, SL("_action"), _15 TSRMLS_CC); _16 = zephir_fetch_nproperty_this(this_ptr, SL("_defaultParams"), PH_NOISY_CC); zephir_update_property_this(this_ptr, SL("_params"), _16 TSRMLS_CC); } ZEPHIR_MM_RESTORE(); }
PHP_METHOD(Test_FortyTwo, proof) { zend_bool _5; HashTable *_3; HashPosition _2; zval *_0; int i, j, _6, _7; zval *box, *side = NULL, *_1, **_4, *_8; ZEPHIR_MM_GROW(); ZEPHIR_INIT_VAR(box); array_init_size(box, 19); ZEPHIR_INIT_VAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_VAR(_1); ZVAL_LONG(_1, 10); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 24); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 8); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 8); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 15); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 19); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 19); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 17); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 6); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 6); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 16); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 20); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 20); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 13); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 9); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 9); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 11); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 22); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 22); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 2); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 18); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 18); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 4); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 20); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 5); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 21); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 16); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 16); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 3); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 23); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 23); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 7); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 12); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 12); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 25); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 5); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 24); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 7); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 11); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 11); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 27); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 4); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); ZEPHIR_INIT_BNVAR(_0); array_init_size(_0, 5); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 11); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 27); zephir_array_fast_append(_0, _1); ZEPHIR_INIT_BNVAR(_1); ZVAL_LONG(_1, 4); zephir_array_fast_append(_0, _1); zephir_array_fast_append(box, _0); zephir_is_iterable(box, &_3, &_2, 0, 0); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) ) { ZEPHIR_GET_HVALUE(side, _4); j = 0; _7 = 2; _6 = 0; _5 = 0; if ((_6 <= _7)) { while (1) { if (_5) { _6++; if (!((_6 <= _7))) { break; } } else { _5 = 1; } i = _6; zephir_array_fetch_long(&_8, side, i, PH_NOISY | PH_READONLY TSRMLS_CC); j += zephir_get_numberval(_8); } } if ((j != 42)) { ZEPHIR_THROW_EXCEPTION_STR(test_exception_ce, "not true"); return; } } ZEPHIR_MM_RESTORE(); }