PHP_METHOD(Test_Statements, testPropertyAcccessAvoidTmpReuse) { zval *result1 = NULL, *result2 = NULL, *result3 = NULL, *result4 = NULL, *_0, *_1, *_2, *_3, *_4, *_5, *_6, *_7; ZEPHIR_MM_GROW(); _0 = zephir_fetch_nproperty_this(this_ptr, SL("tmp2"), PH_NOISY_CC); _1 = zephir_fetch_nproperty_this(this_ptr, SL("tmp1"), PH_NOISY_CC); ZEPHIR_INIT_VAR(result1); zephir_fast_strpos(result1, _0, _1, 0 ); _2 = zephir_fetch_nproperty_this(this_ptr, SL("tmp2"), PH_NOISY_CC); _3 = zephir_fetch_nproperty_this(this_ptr, SL("tmp1"), PH_NOISY_CC); ZEPHIR_INIT_VAR(result2); zephir_fast_strpos(result2, _2, _3, 0 ); _4 = zephir_fetch_nproperty_this(this_ptr, SL("tmp2"), PH_NOISY_CC); _5 = zephir_fetch_nproperty_this(this_ptr, SL("tmp1"), PH_NOISY_CC); ZEPHIR_INIT_VAR(result3); zephir_fast_strpos(result3, _4, _5, 0 ); _6 = zephir_fetch_nproperty_this(this_ptr, SL("tmp2"), PH_NOISY_CC); _7 = zephir_fetch_nproperty_this(this_ptr, SL("tmp1"), PH_NOISY_CC); ZEPHIR_INIT_VAR(result4); zephir_fast_strpos(result4, _6, _7, 0 ); ZEPHIR_MM_RESTORE(); }
PHP_METHOD(Owl_Router_Router, add) { int ZEPHIR_LAST_CALL_STATUS; zend_bool _2; zval *parameters = NULL; zval *uri_param = NULL, *parameters_param = NULL, *method_param = NULL, *route, _0, *_1, _3, *_4; zval *uri = NULL, *method = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 2, &uri_param, ¶meters_param, &method_param); zephir_get_strval(uri, uri_param); if (!parameters_param) { ZEPHIR_INIT_VAR(parameters); array_init(parameters); } else { parameters = parameters_param; } if (!method_param) { ZEPHIR_INIT_VAR(method); ZVAL_STRING(method, "GET", 1); } else { zephir_get_strval(method, method_param); } ZEPHIR_SINIT_VAR(_0); ZVAL_STRING(&_0, "{", 0); ZEPHIR_INIT_VAR(_1); zephir_fast_strpos(_1, uri, &_0, 0 ); _2 = ZEPHIR_IS_FALSE_IDENTICAL(_1); if (_2) { ZEPHIR_SINIT_VAR(_3); ZVAL_STRING(&_3, ":", 0); ZEPHIR_INIT_VAR(_4); zephir_fast_strpos(_4, uri, &_3, 0 ); _2 = ZEPHIR_IS_FALSE_IDENTICAL(_4); } ZEPHIR_INIT_VAR(route); if (_2) { object_init_ex(route, owl_router_http_staticroute_ce); ZEPHIR_CALL_METHOD(NULL, route, "__construct", NULL, 27, uri); zephir_check_call_status(); } else { object_init_ex(route, owl_router_http_dynamicroute_ce); ZEPHIR_CALL_METHOD(NULL, route, "__construct", NULL, 28, uri); zephir_check_call_status(); } zephir_update_property_zval(route, SL("method"), method TSRMLS_CC); zephir_update_property_zval(route, SL("parameters"), parameters TSRMLS_CC); zephir_update_property_array_append(this_ptr, SL("routers"), route TSRMLS_CC); ZEPHIR_MM_RESTORE(); }
/** * Checks if the needle is included in the haystack */ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, isIncluded) { int ZEPHIR_LAST_CALL_STATUS; zval *needle, *haystack, *_0 = NULL, *_1; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 2, 0, &needle, &haystack); if (Z_TYPE_P(haystack) == IS_ARRAY) { RETURN_MM_BOOL(zephir_fast_in_array(needle, haystack TSRMLS_CC)); } if (Z_TYPE_P(haystack) == IS_STRING) { if ((zephir_function_exists_ex(SS("mb_strpos") TSRMLS_CC) == SUCCESS)) { ZEPHIR_CALL_FUNCTION(&_0, "mb_strpos", NULL, 375, haystack, needle); zephir_check_call_status(); RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(_0)); } ZEPHIR_INIT_VAR(_1); zephir_fast_strpos(_1, haystack, needle, 0 ); RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(_1)); } ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Invalid haystack", "phalcon/mvc/view/engine/volt.zep", 166); return; }
PHP_METHOD(Test_BuiltIn_StringMethods, getIndex) { zval *str_param = NULL, *needle_param = NULL, _0; zval str, needle; zval this_zv; zval *this_ptr = getThis(); if (EXPECTED(this_ptr)) { ZVAL_OBJ(&this_zv, Z_OBJ_P(this_ptr)); this_ptr = &this_zv; } else this_ptr = NULL; ZVAL_UNDEF(&str); ZVAL_UNDEF(&needle); ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); zephir_fetch_params(1, 2, 0, &str_param, &needle_param); zephir_get_strval(&str, str_param); zephir_get_strval(&needle, needle_param); ZEPHIR_INIT_VAR(&_0); zephir_fast_strpos(&_0, &str, &needle, 0 ); RETURN_CCTOR(_0); }
PHP_METHOD(Test_BuiltIn_StringMethods, getIndexWithPosition) { int position; zval *str_param = NULL, *needle_param = NULL, *position_param = NULL, _0, _1; zval str, needle; zval this_zv; zval *this_ptr = getThis(); if (EXPECTED(this_ptr)) { ZVAL_OBJ(&this_zv, Z_OBJ_P(this_ptr)); this_ptr = &this_zv; } else this_ptr = NULL; ZVAL_UNDEF(&str); ZVAL_UNDEF(&needle); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &str_param, &needle_param, &position_param); zephir_get_strval(&str, str_param); zephir_get_strval(&needle, needle_param); position = zephir_get_intval(position_param); ZVAL_LONG(&_0, position); ZEPHIR_INIT_VAR(&_1); zephir_fast_strpos(&_1, &str, &needle, zephir_get_intval(&_0) ); RETURN_CCTOR(_1); }
PHP_METHOD(Test_Strings, testStrposOffset) { int offset; zval *haystack, haystack_sub, *needle, needle_sub, *offset_param = NULL, _0; zval this_zv; zval *this_ptr = getThis(); if (EXPECTED(this_ptr)) { ZVAL_OBJ(&this_zv, Z_OBJ_P(this_ptr)); this_ptr = &this_zv; } else this_ptr = NULL; ZVAL_UNDEF(&haystack_sub); ZVAL_UNDEF(&needle_sub); ZVAL_UNDEF(&_0); zephir_fetch_params(0, 3, 0, &haystack, &needle, &offset_param); offset = zephir_get_intval(offset_param); ZVAL_LONG(&_0, offset); zephir_fast_strpos(return_value, haystack, needle, zephir_get_intval(&_0) ); return; }
PHP_METHOD(Test_Statements, testPropertyAcccessAvoidTmpReuse) { zval result1, result2, result3, result4, _0, _1, _2, _3, _4, _5, _6, _7; zval this_zv; zval *this_ptr = getThis(); if (EXPECTED(this_ptr)) { ZVAL_OBJ(&this_zv, Z_OBJ_P(this_ptr)); this_ptr = &this_zv; } else this_ptr = NULL; ZVAL_UNDEF(&result1); ZVAL_UNDEF(&result2); ZVAL_UNDEF(&result3); ZVAL_UNDEF(&result4); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_6); ZVAL_UNDEF(&_7); ZEPHIR_MM_GROW(); zephir_read_property(&_0, this_ptr, SL("tmp2"), PH_NOISY_CC | PH_READONLY); zephir_read_property(&_1, this_ptr, SL("tmp1"), PH_NOISY_CC | PH_READONLY); ZEPHIR_INIT_VAR(&result1); zephir_fast_strpos(&result1, &_0, &_1, 0 ); zephir_read_property(&_2, this_ptr, SL("tmp2"), PH_NOISY_CC | PH_READONLY); zephir_read_property(&_3, this_ptr, SL("tmp1"), PH_NOISY_CC | PH_READONLY); ZEPHIR_INIT_VAR(&result2); zephir_fast_strpos(&result2, &_2, &_3, 0 ); zephir_read_property(&_4, this_ptr, SL("tmp2"), PH_NOISY_CC | PH_READONLY); zephir_read_property(&_5, this_ptr, SL("tmp1"), PH_NOISY_CC | PH_READONLY); ZEPHIR_INIT_VAR(&result3); zephir_fast_strpos(&result3, &_4, &_5, 0 ); zephir_read_property(&_6, this_ptr, SL("tmp2"), PH_NOISY_CC | PH_READONLY); zephir_read_property(&_7, this_ptr, SL("tmp1"), PH_NOISY_CC | PH_READONLY); ZEPHIR_INIT_VAR(&result4); zephir_fast_strpos(&result4, &_6, &_7, 0 ); ZEPHIR_MM_RESTORE(); }
PHP_METHOD(Test_Strings, testStrpos) { zval *haystack, *needle; zephir_fetch_params(0, 2, 0, &haystack, &needle); zephir_fast_strpos(return_value, haystack, needle, 0 ); return; }
PHP_METHOD(Test_Fcall, testCall1) { zval _0, _1; ZEPHIR_SINIT_VAR(_0); ZVAL_STRING(&_0, "hello", 0); ZEPHIR_SINIT_VAR(_1); ZVAL_STRING(&_1, "h", 0); zephir_fast_strpos(return_value, &_0, &_1, 0 ); return; }
/** * Build multidimensional array from string * * <code> * $this->_parseIniString('path.hello.world', 'value for last key'); * * // result * [ * 'path' => [ * 'hello' => [ * 'world' => 'value for last key', * ], * ], * ]; * </code> */ PHP_METHOD(Phalcon_Config_Adapter_Ini, _parseIniString) { int ZEPHIR_LAST_CALL_STATUS; zval *path_param = NULL, *value = NULL, *pos = NULL, *key = NULL, *_0 = NULL, _1, _2, _3, *_4; zval *path = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 2, 0, &path_param, &value); if (unlikely(Z_TYPE_P(path_param) != IS_STRING && Z_TYPE_P(path_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'path' must be a string") TSRMLS_CC); RETURN_MM_NULL(); } if (likely(Z_TYPE_P(path_param) == IS_STRING)) { zephir_get_strval(path, path_param); } else { ZEPHIR_INIT_VAR(path); ZVAL_EMPTY_STRING(path); } ZEPHIR_SEPARATE_PARAM(value); ZEPHIR_CALL_METHOD(&_0, this_ptr, "_cast", NULL, 135, value); zephir_check_call_status(); ZEPHIR_CPY_WRT(value, _0); ZEPHIR_SINIT_VAR(_1); ZVAL_STRING(&_1, ".", 0); ZEPHIR_INIT_VAR(pos); zephir_fast_strpos(pos, path, &_1, 0 ); if (ZEPHIR_IS_FALSE_IDENTICAL(pos)) { zephir_create_array(return_value, 1, 0 TSRMLS_CC); zephir_array_update_zval(&return_value, path, &value, PH_COPY); RETURN_MM(); } ZEPHIR_SINIT_VAR(_2); ZVAL_LONG(&_2, 0); ZEPHIR_INIT_VAR(key); zephir_substr(key, path, 0 , zephir_get_intval(pos), 0); ZEPHIR_SINIT_VAR(_3); ZVAL_LONG(&_3, (zephir_get_numberval(pos) + 1)); ZEPHIR_INIT_VAR(_4); zephir_substr(_4, path, zephir_get_intval(&_3), 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_get_strval(path, _4); zephir_create_array(return_value, 1, 0 TSRMLS_CC); ZEPHIR_CALL_METHOD(&_0, this_ptr, "_parseinistring", NULL, 136, path, value); zephir_check_call_status(); zephir_array_update_zval(&return_value, key, &_0, PH_COPY); RETURN_MM(); }
PHP_METHOD(Test_Strings, testStrposOffset) { int offset; zval *haystack, *needle, *offset_param = NULL, _0; zephir_fetch_params(0, 3, 0, &haystack, &needle, &offset_param); offset = zephir_get_intval(offset_param); ZEPHIR_SINIT_VAR(_0); ZVAL_LONG(&_0, offset); zephir_fast_strpos(return_value, haystack, needle, zephir_get_intval(&_0) ); return; }
PHP_METHOD(Test_Strings, testStrpos) { zval *haystack, haystack_sub, *needle, needle_sub; zval *this_ptr = getThis(); ZVAL_UNDEF(&haystack_sub); ZVAL_UNDEF(&needle_sub); zephir_fetch_params(0, 2, 0, &haystack, &needle); zephir_fast_strpos(return_value, haystack, needle, 0 ); return; }
PHP_METHOD(Test_BuiltIn_StringMethods, getIndex) { zval *str_param = NULL, *needle_param = NULL, *_0; zval *str = NULL, *needle = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 2, 0, &str_param, &needle_param); zephir_get_strval(str, str_param); zephir_get_strval(needle, needle_param); ZEPHIR_INIT_VAR(_0); zephir_fast_strpos(_0, str, needle, 0 ); RETURN_CCTOR(_0); }
PHP_METHOD(Cake_Core_Functions, pluginSplit) { zend_bool dotAppend; zval *name_param = NULL, *dotAppend_param = NULL, *plugin_param = NULL, _0, *_1, *parts, *_2; zval *name = NULL, *plugin = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 2, &name_param, &dotAppend_param, &plugin_param); zephir_get_strval(name, name_param); if (!dotAppend_param) { dotAppend = 0; } else { dotAppend = zephir_get_boolval(dotAppend_param); } if (!plugin_param) { ZEPHIR_INIT_VAR(plugin); ZVAL_EMPTY_STRING(plugin); } else { zephir_get_strval(plugin, plugin_param); } ZEPHIR_SINIT_VAR(_0); ZVAL_STRING(&_0, ".", 0); ZEPHIR_INIT_VAR(_1); zephir_fast_strpos(_1, name, &_0, 0 ); if (!ZEPHIR_IS_FALSE_IDENTICAL(_1)) { ZEPHIR_INIT_VAR(parts); zephir_fast_explode_str(parts, SL("."), name, 2 TSRMLS_CC); if (dotAppend) { ZEPHIR_INIT_VAR(_2); ZVAL_STRING(_2, ".", 1); zephir_array_update_long(&parts, 0, &_2, PH_COPY | PH_SEPARATE, "cake/Core/Functions.zep", 12); } RETURN_CCTOR(parts); } zephir_create_array(return_value, 2, 0 TSRMLS_CC); zephir_array_fast_append(return_value, plugin); zephir_array_fast_append(return_value, name); RETURN_MM(); }
PHP_METHOD(Test_Strings, testStrposOffset) { zend_long offset; zval *haystack, haystack_sub, *needle, needle_sub, *offset_param = NULL, _0; zval *this_ptr = getThis(); ZVAL_UNDEF(&haystack_sub); ZVAL_UNDEF(&needle_sub); ZVAL_UNDEF(&_0); zephir_fetch_params(0, 3, 0, &haystack, &needle, &offset_param); offset = zephir_get_intval(offset_param); ZVAL_LONG(&_0, offset); zephir_fast_strpos(return_value, haystack, needle, zephir_get_intval(&_0) ); return; }
PHP_METHOD(Test_Strings, testStrpos) { zval *haystack, haystack_sub, *needle, needle_sub; zval this_zv; zval *this_ptr = getThis(); if (EXPECTED(this_ptr)) { ZVAL_OBJ(&this_zv, Z_OBJ_P(this_ptr)); this_ptr = &this_zv; } else this_ptr = NULL; ZVAL_UNDEF(&haystack_sub); ZVAL_UNDEF(&needle_sub); zephir_fetch_params(0, 2, 0, &haystack, &needle); zephir_fast_strpos(return_value, haystack, needle, 0 ); return; }
PHP_METHOD(Test_BuiltIn_StringMethods, getIndexWithPosition) { int position; zval *str_param = NULL, *needle_param = NULL, *position_param = NULL, _0, *_1; zval *str = NULL, *needle = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 3, 0, &str_param, &needle_param, &position_param); zephir_get_strval(str, str_param); zephir_get_strval(needle, needle_param); position = zephir_get_intval(position_param); ZEPHIR_SINIT_VAR(_0); ZVAL_LONG(&_0, position); ZEPHIR_INIT_VAR(_1); zephir_fast_strpos(_1, str, needle, zephir_get_intval(&_0) ); RETURN_CCTOR(_1); }
/** * Set an specific argument */ PHP_METHOD(Phalcon_Cli_Console, setArgument) { zephir_fcall_cache_entry *_5 = NULL, *_24 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zend_bool str, shift, _0; zval *arguments_param = NULL, *str_param = NULL, *shift_param = NULL, __$true, arg, pos, args, opts, handleArgs, *_1, _2$$5, _3$$5, _4$$5, _6$$6, _7$$7, _8$$7, _9$$7, _10$$7, _11$$7, _12$$7, _13$$7, _14$$8, _15$$8, _16$$8, _17$$9, _18$$9, _19$$9, _20$$10, _21$$10, _22$$13, _23$$13, _25$$15, _26$$16, _27$$17; zval arguments; zval *this_ptr = getThis(); ZVAL_UNDEF(&arguments); ZVAL_BOOL(&__$true, 1); ZVAL_UNDEF(&arg); ZVAL_UNDEF(&pos); ZVAL_UNDEF(&args); ZVAL_UNDEF(&opts); ZVAL_UNDEF(&handleArgs); ZVAL_UNDEF(&_2$$5); ZVAL_UNDEF(&_3$$5); ZVAL_UNDEF(&_4$$5); ZVAL_UNDEF(&_6$$6); ZVAL_UNDEF(&_7$$7); ZVAL_UNDEF(&_8$$7); ZVAL_UNDEF(&_9$$7); ZVAL_UNDEF(&_10$$7); ZVAL_UNDEF(&_11$$7); ZVAL_UNDEF(&_12$$7); ZVAL_UNDEF(&_13$$7); ZVAL_UNDEF(&_14$$8); ZVAL_UNDEF(&_15$$8); ZVAL_UNDEF(&_16$$8); ZVAL_UNDEF(&_17$$9); ZVAL_UNDEF(&_18$$9); ZVAL_UNDEF(&_19$$9); ZVAL_UNDEF(&_20$$10); ZVAL_UNDEF(&_21$$10); ZVAL_UNDEF(&_22$$13); ZVAL_UNDEF(&_23$$13); ZVAL_UNDEF(&_25$$15); ZVAL_UNDEF(&_26$$16); ZVAL_UNDEF(&_27$$17); ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 3, &arguments_param, &str_param, &shift_param); if (!arguments_param) { ZEPHIR_INIT_VAR(&arguments); array_init(&arguments); } else { ZEPHIR_OBS_COPY_OR_DUP(&arguments, arguments_param); } if (!str_param) { str = 1; } else { if (UNEXPECTED(Z_TYPE_P(str_param) != IS_TRUE && Z_TYPE_P(str_param) != IS_FALSE)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'str' must be of the type bool") TSRMLS_CC); RETURN_MM_NULL(); } str = (Z_TYPE_P(str_param) == IS_TRUE); } if (!shift_param) { shift = 1; } else { if (UNEXPECTED(Z_TYPE_P(shift_param) != IS_TRUE && Z_TYPE_P(shift_param) != IS_FALSE)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'shift' must be of the type bool") TSRMLS_CC); RETURN_MM_NULL(); } shift = (Z_TYPE_P(shift_param) == IS_TRUE); } ZEPHIR_INIT_VAR(&args); array_init(&args); ZEPHIR_INIT_VAR(&opts); array_init(&opts); ZEPHIR_INIT_VAR(&handleArgs); array_init(&handleArgs); _0 = shift; if (_0) { _0 = ((zephir_fast_count_int(&arguments TSRMLS_CC)) ? 1 : 0); } if (_0) { ZEPHIR_MAKE_REF(&arguments); ZEPHIR_CALL_FUNCTION(NULL, "array_shift", NULL, 11, &arguments); ZEPHIR_UNREF(&arguments); zephir_check_call_status(); } zephir_is_iterable(&arguments, 0, "phalcon/cli/console.zep", 176); ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&arguments), _1) { ZEPHIR_INIT_NVAR(&arg); ZVAL_COPY(&arg, _1); if (Z_TYPE_P(&arg) == IS_STRING) { ZEPHIR_INIT_NVAR(&_2$$5); ZVAL_STRING(&_2$$5, "--"); ZVAL_LONG(&_3$$5, 2); ZEPHIR_CALL_FUNCTION(&_4$$5, "strncmp", &_5, 117, &arg, &_2$$5, &_3$$5); zephir_check_call_status(); if (ZEPHIR_IS_LONG(&_4$$5, 0)) { ZEPHIR_INIT_NVAR(&_6$$6); ZVAL_STRING(&_6$$6, "="); ZEPHIR_INIT_NVAR(&pos); zephir_fast_strpos(&pos, &arg, &_6$$6, 0 ); if (zephir_is_true(&pos)) { ZEPHIR_INIT_NVAR(&_7$$7); ZVAL_LONG(&_8$$7, (zephir_get_numberval(&pos) + 1)); ZEPHIR_INIT_NVAR(&_9$$7); zephir_substr(&_9$$7, &arg, zephir_get_intval(&_8$$7), 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_fast_trim(&_7$$7, &_9$$7, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); ZEPHIR_INIT_NVAR(&_10$$7); ZVAL_LONG(&_11$$7, 2); ZVAL_LONG(&_12$$7, (zephir_get_numberval(&pos) - 2)); ZEPHIR_INIT_NVAR(&_13$$7); zephir_substr(&_13$$7, &arg, 2 , zephir_get_intval(&_12$$7), 0); zephir_fast_trim(&_10$$7, &_13$$7, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); zephir_array_update_zval(&opts, &_10$$7, &_7$$7, PH_COPY | PH_SEPARATE); } else { ZEPHIR_INIT_NVAR(&_14$$8); ZVAL_LONG(&_15$$8, 2); ZEPHIR_INIT_NVAR(&_16$$8); zephir_substr(&_16$$8, &arg, 2 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_fast_trim(&_14$$8, &_16$$8, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); zephir_array_update_zval(&opts, &_14$$8, &__$true, PH_COPY | PH_SEPARATE); } } else { ZEPHIR_INIT_NVAR(&_17$$9); ZVAL_STRING(&_17$$9, "-"); ZVAL_LONG(&_18$$9, 1); ZEPHIR_CALL_FUNCTION(&_19$$9, "strncmp", &_5, 117, &arg, &_17$$9, &_18$$9); zephir_check_call_status(); if (ZEPHIR_IS_LONG(&_19$$9, 0)) { ZVAL_LONG(&_20$$10, 1); ZEPHIR_INIT_NVAR(&_21$$10); zephir_substr(&_21$$10, &arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_array_update_zval(&opts, &_21$$10, &__$true, PH_COPY | PH_SEPARATE); } else { zephir_array_append(&args, &arg, PH_SEPARATE, "phalcon/cli/console.zep", 168); } } } else { zephir_array_append(&args, &arg, PH_SEPARATE, "phalcon/cli/console.zep", 172); } } ZEND_HASH_FOREACH_END();
PHP_METHOD(PhalconPlus_Logger_Processor_Trace, __toString) { HashTable *_4$$3; HashPosition _3$$3; zval *trace = NULL, *part = NULL, *_1, *trace1 = NULL, *trace2 = NULL, *_9 = NULL, *_10, *_11, *_12, *_13, *_14, *_15, *_16, *_17, *_18, *_2$$3, **_5$$3, *_6$$4, *_7$$4, *_8$$4 = NULL, *_20$$7, *_21$$7; zephir_fcall_cache_entry *_0 = NULL; int ZEPHIR_LAST_CALL_STATUS, i, j = 0, _19; ZEPHIR_MM_GROW(); ZEPHIR_CALL_FUNCTION(&trace, "debug_backtrace", NULL, 52); zephir_check_call_status(); ZEPHIR_MAKE_REF(trace); ZEPHIR_CALL_FUNCTION(NULL, "array_shift", &_0, 53, trace); ZEPHIR_UNREF(trace); zephir_check_call_status(); ZEPHIR_MAKE_REF(trace); ZEPHIR_CALL_FUNCTION(NULL, "array_shift", &_0, 53, trace); ZEPHIR_UNREF(trace); zephir_check_call_status(); i = 0; CHECK: while (1) { zephir_array_fetch_long(&_1, trace, i, PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 33 TSRMLS_CC); if (!(zephir_array_isset_string(_1, SS("class")))) { break; } _2$$3 = zephir_fetch_nproperty_this(this_ptr, SL("skipClassesPartials"), PH_NOISY_CC); zephir_is_iterable(_2$$3, &_4$$3, &_3$$3, 0, 0, "phalconplus/Logger/Processor/Trace.zep", 41); for ( ; zephir_hash_get_current_data_ex(_4$$3, (void**) &_5$$3, &_3$$3) == SUCCESS ; zephir_hash_move_forward_ex(_4$$3, &_3$$3) ) { ZEPHIR_GET_HVALUE(part, _5$$3); zephir_array_fetch_long(&_6$$4, trace, i, PH_NOISY | PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 36 TSRMLS_CC); zephir_array_fetch_string(&_7$$4, _6$$4, SL("class"), PH_NOISY | PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 36 TSRMLS_CC); ZEPHIR_INIT_NVAR(_8$$4); zephir_fast_strpos(_8$$4, _7$$4, part, 0 ); if (!ZEPHIR_IS_FALSE_IDENTICAL(_8$$4)) { i = (i + 1); goto CHECK; } } break; } ZEPHIR_INIT_VAR(trace1); array_init(trace1); ZEPHIR_INIT_VAR(trace2); array_init(trace2); j = (i - 1); ZEPHIR_INIT_NVAR(trace1); zephir_create_array(trace1, 2, 0 TSRMLS_CC); ZEPHIR_INIT_VAR(_9); zephir_array_fetch_long(&_10, trace, j, PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 48 TSRMLS_CC); if (zephir_array_isset_string(_10, SS("file"))) { zephir_array_fetch_long(&_11, trace, j, PH_NOISY | PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 48 TSRMLS_CC); ZEPHIR_OBS_NVAR(_9); zephir_array_fetch_string(&_9, _11, SL("file"), PH_NOISY, "phalconplus/Logger/Processor/Trace.zep", 48 TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(_9); ZVAL_STRING(_9, "Nil", 1); } zephir_array_update_string(&trace1, SL("file"), &_9, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_LNVAR(_9); zephir_array_fetch_long(&_12, trace, j, PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 49 TSRMLS_CC); if (zephir_array_isset_string(_12, SS("line"))) { zephir_array_fetch_long(&_13, trace, j, PH_NOISY | PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 49 TSRMLS_CC); ZEPHIR_OBS_NVAR(_9); zephir_array_fetch_string(&_9, _13, SL("line"), PH_NOISY, "phalconplus/Logger/Processor/Trace.zep", 49 TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(_9); ZVAL_LONG(_9, -1); } zephir_array_update_string(&trace1, SL("line"), &_9, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_NVAR(trace2); zephir_create_array(trace2, 2, 0 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_9); zephir_array_fetch_long(&_14, trace, i, PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 53 TSRMLS_CC); if (zephir_array_isset_string(_14, SS("class"))) { zephir_array_fetch_long(&_15, trace, i, PH_NOISY | PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 53 TSRMLS_CC); ZEPHIR_OBS_NVAR(_9); zephir_array_fetch_string(&_9, _15, SL("class"), PH_NOISY, "phalconplus/Logger/Processor/Trace.zep", 53 TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(_9); ZVAL_STRING(_9, "Nil", 1); } zephir_array_update_string(&trace2, SL("class"), &_9, PH_COPY | PH_SEPARATE); ZEPHIR_INIT_LNVAR(_9); zephir_array_fetch_long(&_16, trace, i, PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 54 TSRMLS_CC); if (zephir_array_isset_string(_16, SS("function"))) { zephir_array_fetch_long(&_17, trace, i, PH_NOISY | PH_READONLY, "phalconplus/Logger/Processor/Trace.zep", 54 TSRMLS_CC); ZEPHIR_OBS_NVAR(_9); zephir_array_fetch_string(&_9, _17, SL("function"), PH_NOISY, "phalconplus/Logger/Processor/Trace.zep", 54 TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(_9); ZVAL_STRING(_9, "Nil", 1); } zephir_array_update_string(&trace2, SL("function"), &_9, PH_COPY | PH_SEPARATE); _18 = zephir_fetch_nproperty_this(this_ptr, SL("mode"), PH_NOISY_CC); do { _19 = ((int) (zephir_get_numberval(_18)) & 0x0011); if (_19 == 0x0010) { zephir_fast_join_str(return_value, SL(":"), trace2 TSRMLS_CC); RETURN_MM(); } if (_19 == 0x11) { ZEPHIR_INIT_VAR(_20$$7); zephir_fast_join_str(_20$$7, SL(":"), trace1 TSRMLS_CC); ZEPHIR_INIT_VAR(_21$$7); zephir_fast_join_str(_21$$7, SL(":"), trace2 TSRMLS_CC); ZEPHIR_CONCAT_VSV(return_value, _20$$7, "][", _21$$7); RETURN_MM(); } zephir_fast_join_str(return_value, SL(":"), trace1 TSRMLS_CC); RETURN_MM(); } while(0); ZEPHIR_MM_RESTORE(); }
/** * Set an specific argument * * @param var arguments * @param boolean str * @param boolean shift */ PHP_METHOD(Phalcon_Cli_Console, setArgument) { HashTable *_3; HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_1 = NULL, *_8 = NULL, *_16 = NULL; zend_bool str, shift, _0; zval *arguments = NULL, *str_param = NULL, *shift_param = NULL, *arg = NULL, *pos = NULL, *args, *opts, *handleArgs = NULL, **_4, _5 = zval_used_for_init, _6 = zval_used_for_init, *_7 = NULL, *_9 = NULL, *_10 = NULL, *_11 = NULL, _12 = zval_used_for_init, _13 = zval_used_for_init, *_14 = NULL, *_15 = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 3, &arguments, &str_param, &shift_param); if (!arguments) { arguments = ZEPHIR_GLOBAL(global_null); } if (!str_param) { str = 1; } else { if (unlikely(Z_TYPE_P(str_param) != IS_BOOL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'str' must be a bool") TSRMLS_CC); RETURN_MM_NULL(); } str = Z_BVAL_P(str_param); } if (!shift_param) { shift = 1; } else { if (unlikely(Z_TYPE_P(shift_param) != IS_BOOL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'shift' must be a bool") TSRMLS_CC); RETURN_MM_NULL(); } shift = Z_BVAL_P(shift_param); } ZEPHIR_INIT_VAR(args); array_init(args); ZEPHIR_INIT_VAR(opts); array_init(opts); ZEPHIR_INIT_VAR(handleArgs); array_init(handleArgs); if (Z_TYPE_P(arguments) != IS_ARRAY) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Arguments must be an array", "phalcon/cli/console.zep", 266); return; } _0 = shift; if (_0) { _0 = (zephir_fast_count_int(arguments TSRMLS_CC)) ? 1 : 0; } if (_0) { Z_SET_ISREF_P(arguments); ZEPHIR_CALL_FUNCTION(NULL, "array_shift", &_1, arguments); Z_UNSET_ISREF_P(arguments); zephir_check_call_status(); } zephir_is_iterable(arguments, &_3, &_2, 0, 0, "phalcon/cli/console.zep", 294); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) ) { ZEPHIR_GET_HVALUE(arg, _4); if (Z_TYPE_P(arg) == IS_STRING) { ZEPHIR_SINIT_NVAR(_5); ZVAL_STRING(&_5, "--", 0); ZEPHIR_SINIT_NVAR(_6); ZVAL_LONG(&_6, 2); ZEPHIR_CALL_FUNCTION(&_7, "strncmp", &_8, arg, &_5, &_6); zephir_check_call_status(); if (ZEPHIR_IS_LONG(_7, 0)) { ZEPHIR_SINIT_NVAR(_5); ZVAL_STRING(&_5, "=", 0); ZEPHIR_INIT_NVAR(pos); zephir_fast_strpos(pos, arg, &_5, 0 ); if (zephir_is_true(pos)) { ZEPHIR_INIT_NVAR(_9); ZEPHIR_SINIT_NVAR(_6); ZVAL_LONG(&_6, (zephir_get_numberval(pos) + 1)); ZEPHIR_INIT_NVAR(_10); zephir_substr(_10, arg, zephir_get_intval(&_6), 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_fast_trim(_9, _10, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); ZEPHIR_INIT_NVAR(_11); ZEPHIR_SINIT_NVAR(_12); ZVAL_LONG(&_12, 2); ZEPHIR_SINIT_NVAR(_13); ZVAL_LONG(&_13, (zephir_get_numberval(pos) - 2)); ZEPHIR_INIT_NVAR(_14); zephir_substr(_14, arg, 2 , zephir_get_intval(&_13), 0); zephir_fast_trim(_11, _14, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); zephir_array_update_zval(&opts, _11, &_9, PH_COPY | PH_SEPARATE); } else { ZEPHIR_INIT_NVAR(_9); ZEPHIR_SINIT_NVAR(_12); ZVAL_LONG(&_12, 2); ZEPHIR_INIT_NVAR(_10); zephir_substr(_10, arg, 2 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_fast_trim(_9, _10, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); zephir_array_update_zval(&opts, _9, &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } } else { ZEPHIR_SINIT_NVAR(_12); ZVAL_STRING(&_12, "-", 0); ZEPHIR_SINIT_NVAR(_13); ZVAL_LONG(&_13, 1); ZEPHIR_CALL_FUNCTION(&_15, "strncmp", &_8, arg, &_12, &_13); zephir_check_call_status(); if (ZEPHIR_IS_LONG(_15, 0)) { ZEPHIR_SINIT_NVAR(_12); ZVAL_LONG(&_12, 1); ZEPHIR_INIT_NVAR(_9); zephir_substr(_9, arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_array_update_zval(&opts, _9, &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } else { zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 286); } } } else { zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 290); } } if (str) { ZEPHIR_INIT_NVAR(_9); ZEPHIR_CALL_CE_STATIC(&_7, phalcon_cli_router_route_ce, "getdelimiter", &_16); zephir_check_call_status(); zephir_fast_join(_9, _7, args TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_arguments"), _9 TSRMLS_CC); } else { if (zephir_fast_count_int(args TSRMLS_CC)) { Z_SET_ISREF_P(args); ZEPHIR_CALL_FUNCTION(&_15, "array_shift", &_1, args); Z_UNSET_ISREF_P(args); zephir_check_call_status(); zephir_array_update_string(&handleArgs, SL("task"), &_15, PH_COPY | PH_SEPARATE); } if (zephir_fast_count_int(args TSRMLS_CC)) { Z_SET_ISREF_P(args); ZEPHIR_CALL_FUNCTION(&_7, "array_shift", &_1, args); Z_UNSET_ISREF_P(args); zephir_check_call_status(); zephir_array_update_string(&handleArgs, SL("action"), &_7, PH_COPY | PH_SEPARATE); } if (zephir_fast_count_int(args TSRMLS_CC)) { ZEPHIR_INIT_NVAR(_10); zephir_fast_array_merge(_10, &(handleArgs), &(args) TSRMLS_CC); ZEPHIR_CPY_WRT(handleArgs, _10); } zephir_update_property_this(this_ptr, SL("_arguments"), handleArgs TSRMLS_CC); } zephir_update_property_this(this_ptr, SL("_options"), opts TSRMLS_CC); RETURN_THIS(); }
PHP_METHOD(Yb_View_Redirect, run) { zend_bool redirectDataAsQueries = 0, _7; zval *redirectUrl = NULL, *_4 = NULL, *_11; int ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_1 = NULL; zval *data_param = NULL, *options_param = NULL, *_0 = NULL, *_2 = NULL, *_3 = NULL, *_5 = NULL, *_6 = NULL, _8$$4, *_9$$4, *_10$$4 = NULL; zval *data = NULL, *options = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 2, 0, &data_param, &options_param); zephir_get_arrval(data, data_param); zephir_get_arrval(options, options_param); ZEPHIR_INIT_VAR(_2); ZVAL_STRING(_2, "redirectUrl", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_VAR(_3); ZVAL_STRING(_3, "", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_CALL_CE_STATIC(&_0, yb_std_ce, "valueat", &_1, 5, options, _2, _3); zephir_check_temp_parameter(_2); zephir_check_temp_parameter(_3); zephir_check_call_status(); zephir_get_strval(_4, _0); ZEPHIR_CPY_WRT(redirectUrl, _4); if (unlikely(zephir_fast_strlen_ev(redirectUrl) < 1)) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(yb_view_exception_ce, "Missing option: redirectUrl", "yb/view/redirect.zep", 14); return; } ZEPHIR_INIT_NVAR(_2); ZVAL_STRING(_2, "redirectDataAsQueries", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_INIT_NVAR(_3); ZVAL_BOOL(_3, 0); ZEPHIR_CALL_CE_STATIC(&_6, yb_std_ce, "valueat", &_1, 5, options, _2, _3); zephir_check_temp_parameter(_2); zephir_check_call_status(); redirectDataAsQueries = zephir_get_boolval(_6); _7 = redirectDataAsQueries; if (_7) { _7 = zephir_fast_count_int(data TSRMLS_CC) > 0; } if (_7) { ZEPHIR_SINIT_VAR(_8$$4); ZVAL_STRING(&_8$$4, "?", 0); ZEPHIR_INIT_VAR(_9$$4); zephir_fast_strpos(_9$$4, redirectUrl, &_8$$4, 0 ); if (ZEPHIR_IS_FALSE_IDENTICAL(_9$$4)) { zephir_concat_self_str(&redirectUrl, "?", sizeof("?")-1 TSRMLS_CC); } else { zephir_concat_self_str(&redirectUrl, "&", sizeof("&")-1 TSRMLS_CC); } ZEPHIR_CALL_FUNCTION(&_10$$4, "http_build_query", NULL, 99, data); zephir_check_call_status(); zephir_concat_self(&redirectUrl, _10$$4 TSRMLS_CC); } ZEPHIR_INIT_VAR(_11); ZEPHIR_CONCAT_SV(_11, "Location: ", redirectUrl); ZEPHIR_CALL_FUNCTION(NULL, "header", NULL, 93, _11); zephir_check_call_status(); ZEPHIR_MM_RESTORE(); }
/** * Set an specific argument */ PHP_METHOD(Phalcon_Cli_Console, setArgument) { HashTable *_3; HashPosition _2; int ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_1 = NULL, *_8 = NULL, *_27 = NULL; zend_bool str, shift, _0; zval *arguments_param = NULL, *str_param = NULL, *shift_param = NULL, *arg = NULL, *pos = NULL, *args = NULL, *opts = NULL, *handleArgs = NULL, **_4, _5$$5 = zval_used_for_init, _6$$5 = zval_used_for_init, *_7$$5 = NULL, _9$$6 = zval_used_for_init, *_10$$7 = NULL, _11$$7 = zval_used_for_init, *_12$$7 = NULL, *_13$$7 = NULL, _14$$7 = zval_used_for_init, _15$$7 = zval_used_for_init, *_16$$7 = NULL, *_17$$8 = NULL, _18$$8 = zval_used_for_init, *_19$$8 = NULL, _20$$9 = zval_used_for_init, _21$$9 = zval_used_for_init, *_22$$9 = NULL, _23$$10 = zval_used_for_init, *_24$$10 = NULL, *_25$$13, *_26$$13 = NULL, *_28$$15 = NULL, *_29$$16 = NULL, *_30$$17; zval *arguments = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 3, &arguments_param, &str_param, &shift_param); if (!arguments_param) { ZEPHIR_INIT_VAR(arguments); array_init(arguments); } else { arguments = arguments_param; } if (!str_param) { str = 1; } else { if (unlikely(Z_TYPE_P(str_param) != IS_BOOL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'str' must be a bool") TSRMLS_CC); RETURN_MM_NULL(); } str = Z_BVAL_P(str_param); } if (!shift_param) { shift = 1; } else { if (unlikely(Z_TYPE_P(shift_param) != IS_BOOL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'shift' must be a bool") TSRMLS_CC); RETURN_MM_NULL(); } shift = Z_BVAL_P(shift_param); } ZEPHIR_INIT_VAR(args); array_init(args); ZEPHIR_INIT_VAR(opts); array_init(opts); ZEPHIR_INIT_VAR(handleArgs); array_init(handleArgs); _0 = shift; if (_0) { _0 = ((zephir_fast_count_int(arguments TSRMLS_CC)) ? 1 : 0); } if (_0) { ZEPHIR_MAKE_REF(arguments); ZEPHIR_CALL_FUNCTION(NULL, "array_shift", &_1, 132, arguments); ZEPHIR_UNREF(arguments); zephir_check_call_status(); } zephir_is_iterable(arguments, &_3, &_2, 0, 0, "phalcon/cli/console.zep", 199); for ( ; zephir_hash_get_current_data_ex(_3, (void**) &_4, &_2) == SUCCESS ; zephir_hash_move_forward_ex(_3, &_2) ) { ZEPHIR_GET_HVALUE(arg, _4); if (Z_TYPE_P(arg) == IS_STRING) { ZEPHIR_SINIT_NVAR(_5$$5); ZVAL_STRING(&_5$$5, "--", 0); ZEPHIR_SINIT_NVAR(_6$$5); ZVAL_LONG(&_6$$5, 2); ZEPHIR_CALL_FUNCTION(&_7$$5, "strncmp", &_8, 133, arg, &_5$$5, &_6$$5); zephir_check_call_status(); if (ZEPHIR_IS_LONG(_7$$5, 0)) { ZEPHIR_SINIT_NVAR(_9$$6); ZVAL_STRING(&_9$$6, "=", 0); ZEPHIR_INIT_NVAR(pos); zephir_fast_strpos(pos, arg, &_9$$6, 0 ); if (zephir_is_true(pos)) { ZEPHIR_INIT_NVAR(_10$$7); ZEPHIR_SINIT_NVAR(_11$$7); ZVAL_LONG(&_11$$7, (zephir_get_numberval(pos) + 1)); ZEPHIR_INIT_NVAR(_12$$7); zephir_substr(_12$$7, arg, zephir_get_intval(&_11$$7), 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_fast_trim(_10$$7, _12$$7, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); ZEPHIR_INIT_NVAR(_13$$7); ZEPHIR_SINIT_NVAR(_14$$7); ZVAL_LONG(&_14$$7, 2); ZEPHIR_SINIT_NVAR(_15$$7); ZVAL_LONG(&_15$$7, (zephir_get_numberval(pos) - 2)); ZEPHIR_INIT_NVAR(_16$$7); zephir_substr(_16$$7, arg, 2 , zephir_get_intval(&_15$$7), 0); zephir_fast_trim(_13$$7, _16$$7, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); zephir_array_update_zval(&opts, _13$$7, &_10$$7, PH_COPY | PH_SEPARATE); } else { ZEPHIR_INIT_NVAR(_17$$8); ZEPHIR_SINIT_NVAR(_18$$8); ZVAL_LONG(&_18$$8, 2); ZEPHIR_INIT_NVAR(_19$$8); zephir_substr(_19$$8, arg, 2 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_fast_trim(_17$$8, _19$$8, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); zephir_array_update_zval(&opts, _17$$8, &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } } else { ZEPHIR_SINIT_NVAR(_20$$9); ZVAL_STRING(&_20$$9, "-", 0); ZEPHIR_SINIT_NVAR(_21$$9); ZVAL_LONG(&_21$$9, 1); ZEPHIR_CALL_FUNCTION(&_22$$9, "strncmp", &_8, 133, arg, &_20$$9, &_21$$9); zephir_check_call_status(); if (ZEPHIR_IS_LONG(_22$$9, 0)) { ZEPHIR_SINIT_NVAR(_23$$10); ZVAL_LONG(&_23$$10, 1); ZEPHIR_INIT_NVAR(_24$$10); zephir_substr(_24$$10, arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_array_update_zval(&opts, _24$$10, &ZEPHIR_GLOBAL(global_true), PH_COPY | PH_SEPARATE); } else { zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 191); } } } else { zephir_array_append(&args, arg, PH_SEPARATE, "phalcon/cli/console.zep", 195); } } if (str) { ZEPHIR_INIT_VAR(_25$$13); ZEPHIR_CALL_CE_STATIC(&_26$$13, phalcon_cli_router_route_ce, "getdelimiter", &_27, 134); zephir_check_call_status(); zephir_fast_join(_25$$13, _26$$13, args TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_arguments"), _25$$13 TSRMLS_CC); } else { if (zephir_fast_count_int(args TSRMLS_CC)) { ZEPHIR_MAKE_REF(args); ZEPHIR_CALL_FUNCTION(&_28$$15, "array_shift", &_1, 132, args); ZEPHIR_UNREF(args); zephir_check_call_status(); zephir_array_update_string(&handleArgs, SL("task"), &_28$$15, PH_COPY | PH_SEPARATE); } if (zephir_fast_count_int(args TSRMLS_CC)) { ZEPHIR_MAKE_REF(args); ZEPHIR_CALL_FUNCTION(&_29$$16, "array_shift", &_1, 132, args); ZEPHIR_UNREF(args); zephir_check_call_status(); zephir_array_update_string(&handleArgs, SL("action"), &_29$$16, PH_COPY | PH_SEPARATE); } if (zephir_fast_count_int(args TSRMLS_CC)) { ZEPHIR_INIT_VAR(_30$$17); zephir_fast_array_merge(_30$$17, &(handleArgs), &(args) TSRMLS_CC); ZEPHIR_CPY_WRT(handleArgs, _30$$17); } zephir_update_property_this(this_ptr, SL("_arguments"), handleArgs TSRMLS_CC); } zephir_update_property_this(this_ptr, SL("_options"), opts TSRMLS_CC); RETURN_THIS(); }
/** * Generates a URL * *<code> * // Generate a URL appending the URI to the base URI * echo $url->get("products/edit/1"); * * // Generate a URL for a predefined route * echo $url->get( * [ * "for" => "blog-post", * "title" => "some-cool-stuff", * "year" => "2015", * ] * ); * * // Generate a URL with GET arguments (/show/products?id=1&name=Carrots) * echo $url->get( * "show/products", * [ * "id" => 1, * "name" => "Carrots", * ] * ); * * // Generate an absolute URL by setting the third parameter as false. * echo $url->get( * "https://phalconphp.com/", * null, * false * ); *</code> */ PHP_METHOD(Phalcon_Mvc_Url, get) { unsigned char _17$$14, _19$$14, _24$$16; zend_bool _0$$3, _1$$3, _15$$14, _16$$14, _18$$14, _22$$16, _23$$16, _25$$19; zval *strUri = NULL, *_14$$14 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *uri = NULL, *args = NULL, *local = NULL, *baseUri = NULL, *router = NULL, *dependencyInjector = NULL, *routeName = NULL, *route = NULL, *queryString = NULL, *_2$$4, *_3$$4, _4$$4, *_5$$9, *_9$$9 = NULL, *_12$$9, *_13$$9 = NULL, *_6$$11, *_7$$11 = NULL, *_8$$11, *_10$$13, *_11$$13, _20$$15, *_21$$15, _26$$20, *_27$$20, *_28$$21, *_29$$22; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 4, &uri, &args, &local, &baseUri); if (!uri) { ZEPHIR_CPY_WRT(uri, ZEPHIR_GLOBAL(global_null)); } else { ZEPHIR_SEPARATE_PARAM(uri); } if (!args) { args = ZEPHIR_GLOBAL(global_null); } if (!local) { ZEPHIR_CPY_WRT(local, ZEPHIR_GLOBAL(global_null)); } else { ZEPHIR_SEPARATE_PARAM(local); } if (!baseUri) { ZEPHIR_CPY_WRT(baseUri, ZEPHIR_GLOBAL(global_null)); } else { ZEPHIR_SEPARATE_PARAM(baseUri); } if (Z_TYPE_P(local) == IS_NULL) { _0$$3 = Z_TYPE_P(uri) == IS_STRING; if (_0$$3) { _1$$3 = zephir_memnstr_str(uri, SL("//"), "phalcon/mvc/url.zep", 208); if (!(_1$$3)) { _1$$3 = zephir_memnstr_str(uri, SL(":"), "phalcon/mvc/url.zep", 208); } _0$$3 = _1$$3; } if (_0$$3) { ZEPHIR_INIT_VAR(_2$$4); ZEPHIR_INIT_VAR(_3$$4); ZEPHIR_SINIT_VAR(_4$$4); ZVAL_STRING(&_4$$4, "#^((//)|([a-z0-9]+://)|([a-z0-9]+:))#i", 0); zephir_preg_match(_3$$4, &_4$$4, uri, _2$$4, 0, 0 , 0 TSRMLS_CC); ZEPHIR_INIT_NVAR(local); if (zephir_is_true(_3$$4)) { ZVAL_BOOL(local, 0); } else { ZVAL_BOOL(local, 1); } } else { ZEPHIR_INIT_NVAR(local); ZVAL_BOOL(local, 1); } } if (Z_TYPE_P(baseUri) != IS_STRING) { ZEPHIR_CALL_METHOD(&baseUri, this_ptr, "getbaseuri", NULL, 0); zephir_check_call_status(); } if (Z_TYPE_P(uri) == IS_ARRAY) { ZEPHIR_OBS_VAR(routeName); if (!(zephir_array_isset_string_fetch(&routeName, uri, SS("for"), 0 TSRMLS_CC))) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "It's necessary to define the route name with the parameter 'for'", "phalcon/mvc/url.zep", 226); return; } _5$$9 = zephir_fetch_nproperty_this(this_ptr, SL("_router"), PH_NOISY_CC); ZEPHIR_CPY_WRT(router, _5$$9); if (Z_TYPE_P(router) != IS_OBJECT) { _6$$11 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); ZEPHIR_CPY_WRT(dependencyInjector, _6$$11); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "A dependency injector container is required to obtain the 'router' service", "phalcon/mvc/url.zep", 238); return; } ZEPHIR_INIT_VAR(_8$$11); ZVAL_STRING(_8$$11, "router", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_CALL_METHOD(&_7$$11, dependencyInjector, "getshared", NULL, 0, _8$$11); zephir_check_temp_parameter(_8$$11); zephir_check_call_status(); ZEPHIR_CPY_WRT(router, _7$$11); zephir_update_property_this(getThis(), SL("_router"), router TSRMLS_CC); } ZEPHIR_CALL_METHOD(&_9$$9, router, "getroutebyname", NULL, 0, routeName); zephir_check_call_status(); ZEPHIR_CPY_WRT(route, _9$$9); if (Z_TYPE_P(route) != IS_OBJECT) { ZEPHIR_INIT_VAR(_10$$13); object_init_ex(_10$$13, phalcon_mvc_url_exception_ce); ZEPHIR_INIT_VAR(_11$$13); ZEPHIR_CONCAT_SVS(_11$$13, "Cannot obtain a route using the name '", routeName, "'"); ZEPHIR_CALL_METHOD(NULL, _10$$13, "__construct", NULL, 9, _11$$13); zephir_check_call_status(); zephir_throw_exception_debug(_10$$13, "phalcon/mvc/url.zep", 250 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_INIT_VAR(_12$$9); ZEPHIR_CALL_METHOD(&_9$$9, route, "getpattern", NULL, 0); zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_13$$9, route, "getreversedpaths", NULL, 0); zephir_check_call_status(); phalcon_replace_paths(_12$$9, _9$$9, _13$$9, uri TSRMLS_CC); ZEPHIR_CPY_WRT(uri, _12$$9); } if (zephir_is_true(local)) { zephir_get_strval(_14$$14, uri); ZEPHIR_CPY_WRT(strUri, _14$$14); _15$$14 = ZEPHIR_IS_STRING(baseUri, "/"); if (_15$$14) { _15$$14 = zephir_fast_strlen_ev(strUri) > 2; } _16$$14 = _15$$14; if (_16$$14) { _17$$14 = ZEPHIR_STRING_OFFSET(strUri, 0); _16$$14 = _17$$14 == '/'; } _18$$14 = _16$$14; if (_18$$14) { _19$$14 = ZEPHIR_STRING_OFFSET(strUri, 1); _18$$14 = _19$$14 != '/'; } if (_18$$14) { ZEPHIR_SINIT_VAR(_20$$15); ZVAL_LONG(&_20$$15, 1); ZEPHIR_INIT_VAR(_21$$15); zephir_substr(_21$$15, strUri, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); ZEPHIR_INIT_NVAR(uri); ZEPHIR_CONCAT_VV(uri, baseUri, _21$$15); } else { _22$$16 = ZEPHIR_IS_STRING(baseUri, "/"); if (_22$$16) { _22$$16 = zephir_fast_strlen_ev(strUri) == 1; } _23$$16 = _22$$16; if (_23$$16) { _24$$16 = ZEPHIR_STRING_OFFSET(strUri, 0); _23$$16 = _24$$16 == '/'; } if (_23$$16) { ZEPHIR_CPY_WRT(uri, baseUri); } else { ZEPHIR_INIT_NVAR(uri); ZEPHIR_CONCAT_VV(uri, baseUri, strUri); } } } if (zephir_is_true(args)) { ZEPHIR_CALL_FUNCTION(&queryString, "http_build_query", NULL, 394, args); zephir_check_call_status(); _25$$19 = Z_TYPE_P(queryString) == IS_STRING; if (_25$$19) { _25$$19 = ((zephir_fast_strlen_ev(queryString)) ? 1 : 0); } if (_25$$19) { ZEPHIR_SINIT_VAR(_26$$20); ZVAL_STRING(&_26$$20, "?", 0); ZEPHIR_INIT_VAR(_27$$20); zephir_fast_strpos(_27$$20, uri, &_26$$20, 0 ); if (!ZEPHIR_IS_FALSE_IDENTICAL(_27$$20)) { ZEPHIR_INIT_VAR(_28$$21); ZEPHIR_CONCAT_SV(_28$$21, "&", queryString); zephir_concat_self(&uri, _28$$21 TSRMLS_CC); } else { ZEPHIR_INIT_VAR(_29$$22); ZEPHIR_CONCAT_SV(_29$$22, "?", queryString); zephir_concat_self(&uri, _29$$22 TSRMLS_CC); } } } RETVAL_ZVAL(uri, 1, 0); RETURN_MM(); }
/** * Generates a URL * *<code> * //Generate a URL appending the URI to the base URI * echo $url->get('products/edit/1'); * * //Generate a URL for a predefined route * echo $url->get(array('for' => 'blog-post', 'title' => 'some-cool-stuff', 'year' => '2015')); *</code> */ PHP_METHOD(Phalcon_Mvc_Url, get) { unsigned char _10, _12; int ZEPHIR_LAST_CALL_STATUS; zend_bool _0, _1, _11; zval *strUri = NULL, *_9 = NULL; zval *uri = NULL, *args = NULL, *local = NULL, *baseUri = NULL, *router = NULL, *dependencyInjector = NULL, *routeName, *route = NULL, *queryString = NULL, *_2, *_3 = NULL, _4 = zval_used_for_init, *_5, *_6 = NULL, *_7 = NULL, *_8 = NULL, *_13; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 4, &uri, &args, &local, &baseUri); if (!uri) { ZEPHIR_CPY_WRT(uri, ZEPHIR_GLOBAL(global_null)); } else { ZEPHIR_SEPARATE_PARAM(uri); } if (!args) { args = ZEPHIR_GLOBAL(global_null); } if (!local) { ZEPHIR_CPY_WRT(local, ZEPHIR_GLOBAL(global_null)); } else { ZEPHIR_SEPARATE_PARAM(local); } if (!baseUri) { ZEPHIR_CPY_WRT(baseUri, ZEPHIR_GLOBAL(global_null)); } else { ZEPHIR_SEPARATE_PARAM(baseUri); } if (Z_TYPE_P(local) == IS_NULL) { _0 = Z_TYPE_P(uri) == IS_STRING; if (_0) { _1 = zephir_memnstr_str(uri, SL("//"), "phalcon/mvc/url.zep", 181); if (!(_1)) { _1 = zephir_memnstr_str(uri, SL(":"), "phalcon/mvc/url.zep", 181); } _0 = _1; } if (_0) { ZEPHIR_INIT_VAR(_2); ZEPHIR_INIT_VAR(_3); ZEPHIR_SINIT_VAR(_4); ZVAL_STRING(&_4, "#^(//)|([a-z0-9]+://)|([a-z0-9]+:)#i", 0); zephir_preg_match(_3, &_4, uri, _2, 0, 0 , 0 TSRMLS_CC); ZEPHIR_INIT_NVAR(local); if (zephir_is_true(_3)) { ZVAL_BOOL(local, 0); } else { ZVAL_BOOL(local, 1); } } else { ZEPHIR_INIT_NVAR(local); ZVAL_BOOL(local, 1); } } if (Z_TYPE_P(baseUri) != IS_STRING) { ZEPHIR_CALL_METHOD(&baseUri, this_ptr, "getbaseuri", NULL, 0); zephir_check_call_status(); } if (Z_TYPE_P(uri) == IS_ARRAY) { ZEPHIR_OBS_VAR(routeName); if (!(zephir_array_isset_string_fetch(&routeName, uri, SS("for"), 0 TSRMLS_CC))) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "It's necessary to define the route name with the parameter 'for'", "phalcon/mvc/url.zep", 199); return; } _5 = zephir_fetch_nproperty_this(this_ptr, SL("_router"), PH_NOISY_CC); ZEPHIR_CPY_WRT(router, _5); if (Z_TYPE_P(router) != IS_OBJECT) { _5 = zephir_fetch_nproperty_this(this_ptr, SL("_dependencyInjector"), PH_NOISY_CC); ZEPHIR_CPY_WRT(dependencyInjector, _5); if (Z_TYPE_P(dependencyInjector) != IS_OBJECT) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "A dependency injector container is required to obtain the 'router' service", "phalcon/mvc/url.zep", 211); return; } ZEPHIR_INIT_NVAR(_3); ZVAL_STRING(_3, "router", ZEPHIR_TEMP_PARAM_COPY); ZEPHIR_CALL_METHOD(&_6, dependencyInjector, "getshared", NULL, 0, _3); zephir_check_temp_parameter(_3); zephir_check_call_status(); ZEPHIR_CPY_WRT(router, _6); zephir_update_property_this(this_ptr, SL("_router"), router TSRMLS_CC); } ZEPHIR_CALL_METHOD(&_6, router, "getroutebyname", NULL, 0, routeName); zephir_check_call_status(); ZEPHIR_CPY_WRT(route, _6); if (Z_TYPE_P(route) != IS_OBJECT) { ZEPHIR_INIT_NVAR(_3); object_init_ex(_3, phalcon_mvc_url_exception_ce); ZEPHIR_INIT_VAR(_7); ZEPHIR_CONCAT_SVS(_7, "Cannot obtain a route using the name '", routeName, "'"); ZEPHIR_CALL_METHOD(NULL, _3, "__construct", NULL, 9, _7); zephir_check_call_status(); zephir_throw_exception_debug(_3, "phalcon/mvc/url.zep", 223 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_INIT_NVAR(_3); ZEPHIR_CALL_METHOD(&_6, route, "getpattern", NULL, 0); zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_8, route, "getreversedpaths", NULL, 0); zephir_check_call_status(); phalcon_replace_paths(_3, _6, _8, uri TSRMLS_CC); ZEPHIR_CPY_WRT(uri, _3); } if (zephir_is_true(local)) { zephir_get_strval(_9, uri); ZEPHIR_CPY_WRT(strUri, _9); _0 = ZEPHIR_IS_STRING(baseUri, "/"); if (_0) { _0 = zephir_fast_strlen_ev(strUri) > 2; } _1 = _0; if (_1) { _10 = ZEPHIR_STRING_OFFSET(strUri, 0); _1 = _10 == '/'; } _11 = _1; if (_11) { _12 = ZEPHIR_STRING_OFFSET(strUri, 1); _11 = _12 != '/'; } ZEPHIR_INIT_NVAR(uri); if (_11) { ZEPHIR_SINIT_NVAR(_4); ZVAL_LONG(&_4, 1); ZEPHIR_INIT_NVAR(_3); zephir_substr(_3, strUri, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); ZEPHIR_CONCAT_VV(uri, baseUri, _3); } else { ZEPHIR_CONCAT_VV(uri, baseUri, strUri); } } if (zephir_is_true(args)) { ZEPHIR_CALL_FUNCTION(&queryString, "http_build_query", NULL, 369, args); zephir_check_call_status(); _0 = Z_TYPE_P(queryString) == IS_STRING; if (_0) { _0 = (zephir_fast_strlen_ev(queryString)) ? 1 : 0; } if (_0) { ZEPHIR_SINIT_NVAR(_4); ZVAL_STRING(&_4, "?", 0); ZEPHIR_INIT_NVAR(_3); zephir_fast_strpos(_3, uri, &_4, 0 ); if (!ZEPHIR_IS_FALSE_IDENTICAL(_3)) { ZEPHIR_INIT_LNVAR(_7); ZEPHIR_CONCAT_SV(_7, "&", queryString); zephir_concat_self(&uri, _7 TSRMLS_CC); } else { ZEPHIR_INIT_VAR(_13); ZEPHIR_CONCAT_SV(_13, "?", queryString); zephir_concat_self(&uri, _13 TSRMLS_CC); } } } RETVAL_ZVAL(uri, 1, 0); RETURN_MM(); }
/** * Generates a URL * *<code> * // Generate a URL appending the URI to the base URI * echo $url->get("products/edit/1"); * * // Generate a URL for a predefined route * echo $url->get( * [ * "for" => "blog-post", * "title" => "some-cool-stuff", * "year" => "2015", * ] * ); * * // Generate a URL with GET arguments (/show/products?id=1&name=Carrots) * echo $url->get( * "show/products", * [ * "id" => 1, * "name" => "Carrots", * ] * ); * * // Generate an absolute URL by setting the third parameter as false. * echo $url->get( * "https://phalconphp.com/", * null, * false * ); *</code> */ PHP_METHOD(Phalcon_Mvc_Url, get) { unsigned char _20$$14, _22$$14, _27$$16; zval strUri, _15$$14; zend_long ZEPHIR_LAST_CALL_STATUS; zend_bool local, _0$$3, _1$$3, _18$$14, _19$$14, _21$$14, _25$$16, _26$$16, _28$$19; zval *uri = NULL, uri_sub, *args = NULL, args_sub, *local_param = NULL, *baseUri = NULL, baseUri_sub, __$null, router, dependencyInjector, routeName, route, queryString, _2$$4, _3$$4, _4$$4, _5$$4, _6$$9, _10$$9, _13$$9, _14$$9, _7$$11, _8$$11, _9$$11, _11$$13, _12$$13, _16$$14, _17$$14, _23$$15, _24$$15, _29$$20, _30$$20, _31$$21, _32$$22; zval *this_ptr = getThis(); ZVAL_UNDEF(&uri_sub); ZVAL_UNDEF(&args_sub); ZVAL_UNDEF(&baseUri_sub); ZVAL_NULL(&__$null); ZVAL_UNDEF(&router); ZVAL_UNDEF(&dependencyInjector); ZVAL_UNDEF(&routeName); ZVAL_UNDEF(&route); ZVAL_UNDEF(&queryString); ZVAL_UNDEF(&_2$$4); ZVAL_UNDEF(&_3$$4); ZVAL_UNDEF(&_4$$4); ZVAL_UNDEF(&_5$$4); ZVAL_UNDEF(&_6$$9); ZVAL_UNDEF(&_10$$9); ZVAL_UNDEF(&_13$$9); ZVAL_UNDEF(&_14$$9); ZVAL_UNDEF(&_7$$11); ZVAL_UNDEF(&_8$$11); ZVAL_UNDEF(&_9$$11); ZVAL_UNDEF(&_11$$13); ZVAL_UNDEF(&_12$$13); ZVAL_UNDEF(&_16$$14); ZVAL_UNDEF(&_17$$14); ZVAL_UNDEF(&_23$$15); ZVAL_UNDEF(&_24$$15); ZVAL_UNDEF(&_29$$20); ZVAL_UNDEF(&_30$$20); ZVAL_UNDEF(&_31$$21); ZVAL_UNDEF(&_32$$22); ZVAL_UNDEF(&strUri); ZVAL_UNDEF(&_15$$14); ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 4, &uri, &args, &local_param, &baseUri); if (!uri) { uri = &uri_sub; ZEPHIR_CPY_WRT(uri, &__$null); } else { ZEPHIR_SEPARATE_PARAM(uri); } if (!args) { args = &args_sub; args = &__$null; } if (!local_param) { local = 0; } else { local = zephir_get_boolval(local_param); } if (!baseUri) { baseUri = &baseUri_sub; ZEPHIR_CPY_WRT(baseUri, &__$null); } else { ZEPHIR_SEPARATE_PARAM(baseUri); } if (local == 0) { _0$$3 = Z_TYPE_P(uri) == IS_STRING; if (_0$$3) { _1$$3 = zephir_memnstr_str(uri, SL("//"), "phalcon/mvc/url.zep", 103); if (!(_1$$3)) { _1$$3 = zephir_memnstr_str(uri, SL(":"), "phalcon/mvc/url.zep", 103); } _0$$3 = _1$$3; } if (_0$$3) { ZEPHIR_INIT_VAR(&_2$$4); ZEPHIR_INIT_VAR(&_3$$4); ZVAL_STRING(&_3$$4, "#^((//)|([a-z0-9]+://)|([a-z0-9]+:))#i"); ZEPHIR_INIT_VAR(&_4$$4); ZEPHIR_INIT_VAR(&_5$$4); ZVAL_STRING(&_5$$4, "#^((//)|([a-z0-9]+://)|([a-z0-9]+:))#i"); zephir_preg_match(&_4$$4, &_5$$4, uri, &_2$$4, 0, 0 , 0 TSRMLS_CC); if (zephir_is_true(&_4$$4)) { local = 0; } else { local = 1; } } else { local = 1; } } if (Z_TYPE_P(baseUri) != IS_STRING) { ZEPHIR_CALL_METHOD(baseUri, this_ptr, "getbaseuri", NULL, 0); zephir_check_call_status(); } if (Z_TYPE_P(uri) == IS_ARRAY) { ZEPHIR_OBS_VAR(&routeName); if (!(zephir_array_isset_string_fetch(&routeName, uri, SL("for"), 0))) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "It's necessary to define the route name with the parameter 'for'", "phalcon/mvc/url.zep", 121); return; } zephir_read_property(&_6$$9, this_ptr, SL("router"), PH_NOISY_CC | PH_READONLY); ZEPHIR_CPY_WRT(&router, &_6$$9); if (Z_TYPE_P(&router) != IS_OBJECT) { zephir_read_property(&_7$$11, this_ptr, SL("container"), PH_NOISY_CC | PH_READONLY); ZEPHIR_CPY_WRT(&dependencyInjector, &_7$$11); if (Z_TYPE_P(&dependencyInjector) != IS_OBJECT) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_url_exception_ce, "A dependency injector container is required to obtain the 'router' service", "phalcon/mvc/url.zep", 133); return; } ZEPHIR_INIT_VAR(&_9$$11); ZVAL_STRING(&_9$$11, "router"); ZEPHIR_CALL_METHOD(&_8$$11, &dependencyInjector, "getshared", NULL, 0, &_9$$11); zephir_check_call_status(); ZEPHIR_CPY_WRT(&router, &_8$$11); zephir_update_property_zval(this_ptr, SL("router"), &router); } ZEPHIR_CALL_METHOD(&_10$$9, &router, "getroutebyname", NULL, 0, &routeName); zephir_check_call_status(); ZEPHIR_CPY_WRT(&route, &_10$$9); if (Z_TYPE_P(&route) != IS_OBJECT) { ZEPHIR_INIT_VAR(&_11$$13); object_init_ex(&_11$$13, phalcon_mvc_url_exception_ce); ZEPHIR_INIT_VAR(&_12$$13); ZEPHIR_CONCAT_SVS(&_12$$13, "Cannot obtain a route using the name '", &routeName, "'"); ZEPHIR_CALL_METHOD(NULL, &_11$$13, "__construct", NULL, 4, &_12$$13); zephir_check_call_status(); zephir_throw_exception_debug(&_11$$13, "phalcon/mvc/url.zep", 145 TSRMLS_CC); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_INIT_VAR(&_13$$9); ZEPHIR_CALL_METHOD(&_10$$9, &route, "getpattern", NULL, 0); zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_14$$9, &route, "getreversedpaths", NULL, 0); zephir_check_call_status(); phalcon_replace_paths(&_13$$9, &_10$$9, &_14$$9, uri TSRMLS_CC); ZEPHIR_CPY_WRT(uri, &_13$$9); } if (local) { zephir_get_strval(&_15$$14, uri); ZEPHIR_CPY_WRT(&strUri, &_15$$14); ZVAL_LONG(&_16$$14, -1); ZEPHIR_INIT_VAR(&_17$$14); zephir_substr(&_17$$14, baseUri, -1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); _18$$14 = ZEPHIR_IS_STRING(&_17$$14, "/"); if (_18$$14) { _18$$14 = zephir_fast_strlen_ev(&strUri) > 2; } _19$$14 = _18$$14; if (_19$$14) { _20$$14 = ZEPHIR_STRING_OFFSET(&strUri, 0); _19$$14 = _20$$14 == '/'; } _21$$14 = _19$$14; if (_21$$14) { _22$$14 = ZEPHIR_STRING_OFFSET(&strUri, 1); _21$$14 = _22$$14 != '/'; } if (_21$$14) { ZVAL_LONG(&_23$$15, 1); ZEPHIR_INIT_VAR(&_24$$15); zephir_substr(&_24$$15, &strUri, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); ZEPHIR_INIT_NVAR(uri); ZEPHIR_CONCAT_VV(uri, baseUri, &_24$$15); } else { _25$$16 = ZEPHIR_IS_STRING(baseUri, "/"); if (_25$$16) { _25$$16 = zephir_fast_strlen_ev(&strUri) == 1; } _26$$16 = _25$$16; if (_26$$16) { _27$$16 = ZEPHIR_STRING_OFFSET(&strUri, 0); _26$$16 = _27$$16 == '/'; } if (_26$$16) { ZEPHIR_CPY_WRT(uri, baseUri); } else { ZEPHIR_INIT_NVAR(uri); ZEPHIR_CONCAT_VV(uri, baseUri, &strUri); } } } if (zephir_is_true(args)) { ZEPHIR_CALL_FUNCTION(&queryString, "http_build_query", NULL, 372, args); zephir_check_call_status(); _28$$19 = Z_TYPE_P(&queryString) == IS_STRING; if (_28$$19) { _28$$19 = ((zephir_fast_strlen_ev(&queryString)) ? 1 : 0); } if (_28$$19) { ZEPHIR_INIT_VAR(&_29$$20); ZVAL_STRING(&_29$$20, "?"); ZEPHIR_INIT_VAR(&_30$$20); zephir_fast_strpos(&_30$$20, uri, &_29$$20, 0 ); if (!ZEPHIR_IS_FALSE_IDENTICAL(&_30$$20)) { ZEPHIR_INIT_VAR(&_31$$21); ZEPHIR_CONCAT_SV(&_31$$21, "&", &queryString); zephir_concat_self(uri, &_31$$21 TSRMLS_CC); } else { ZEPHIR_INIT_VAR(&_32$$22); ZEPHIR_CONCAT_SV(&_32$$22, "?", &queryString); zephir_concat_self(uri, &_32$$22 TSRMLS_CC); } } } RETVAL_ZVAL(uri, 1, 0); RETURN_MM(); }
/** * Get the server variable REMOTE_ADDR, or the first ip of HTTP_X_FORWARDED_FOR (when using proxy) * * @return string $remote_addr ip of client */ PHP_METHOD(Phady_Util_Tools, getRemoteAddr) { zend_bool _0, _2, _3, _9, _15, _21; zval *ips, *remoteAddr = NULL, *_SERVER, *_1, *_4, *_5, *_6, *_7, _8, *_10, *_11, *_12, *_13, _14, *_16, *_17, *_18, *_19, _20, *_22, *_23, *_24, *_25, _26, *_27, _28, *_29, *_30; ZEPHIR_MM_GROW(); zephir_get_global(&_SERVER, SS("_SERVER") TSRMLS_CC); _0 = zephir_array_isset_string(_SERVER, SS("HTTP_X_FORWARDED_FOR")); if (_0) { zephir_array_fetch_string(&_1, _SERVER, SL("HTTP_X_FORWARDED_FOR"), PH_NOISY | PH_READONLY, "phady/util/tools.zep", 86 TSRMLS_CC); _0 = zephir_is_true(_1); } _2 = _0; if (_2) { _3 = !(zephir_array_isset_string(_SERVER, SS("REMOTE_ADDR"))); if (!(_3)) { ZEPHIR_INIT_VAR(_4); ZEPHIR_INIT_VAR(_5); ZEPHIR_INIT_VAR(_6); zephir_array_fetch_string(&_7, _SERVER, SL("REMOTE_ADDR"), PH_NOISY | PH_READONLY, "phady/util/tools.zep", 87 TSRMLS_CC); zephir_fast_trim(_6, _7, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); ZEPHIR_SINIT_VAR(_8); ZVAL_STRING(&_8, "/^127\\..*/i", 0); zephir_preg_match(_5, &_8, _6, _4, 0, 0 , 0 TSRMLS_CC); _3 = zephir_is_true(_5); } _9 = _3; if (!(_9)) { ZEPHIR_INIT_VAR(_10); ZEPHIR_INIT_VAR(_11); ZEPHIR_INIT_VAR(_12); zephir_array_fetch_string(&_13, _SERVER, SL("REMOTE_ADDR"), PH_NOISY | PH_READONLY, "phady/util/tools.zep", 87 TSRMLS_CC); zephir_fast_trim(_12, _13, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); ZEPHIR_SINIT_VAR(_14); ZVAL_STRING(&_14, "/^172\\.16.*/i", 0); zephir_preg_match(_11, &_14, _12, _10, 0, 0 , 0 TSRMLS_CC); _9 = zephir_is_true(_11); } _15 = _9; if (!(_15)) { ZEPHIR_INIT_VAR(_16); ZEPHIR_INIT_VAR(_17); ZEPHIR_INIT_VAR(_18); zephir_array_fetch_string(&_19, _SERVER, SL("REMOTE_ADDR"), PH_NOISY | PH_READONLY, "phady/util/tools.zep", 88 TSRMLS_CC); zephir_fast_trim(_18, _19, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); ZEPHIR_SINIT_VAR(_20); ZVAL_STRING(&_20, "/^192\\.168\\.*/i", 0); zephir_preg_match(_17, &_20, _18, _16, 0, 0 , 0 TSRMLS_CC); _15 = zephir_is_true(_17); } _21 = _15; if (!(_21)) { ZEPHIR_INIT_VAR(_22); ZEPHIR_INIT_VAR(_23); ZEPHIR_INIT_VAR(_24); zephir_array_fetch_string(&_25, _SERVER, SL("REMOTE_ADDR"), PH_NOISY | PH_READONLY, "phady/util/tools.zep", 88 TSRMLS_CC); zephir_fast_trim(_24, _25, NULL , ZEPHIR_TRIM_BOTH TSRMLS_CC); ZEPHIR_SINIT_VAR(_26); ZVAL_STRING(&_26, "/^10\\..*/i", 0); zephir_preg_match(_23, &_26, _24, _22, 0, 0 , 0 TSRMLS_CC); _21 = zephir_is_true(_23); } _2 = _21; } if (_2) { zephir_array_fetch_string(&_27, _SERVER, SL("HTTP_X_FORWARDED_FOR"), PH_NOISY | PH_READONLY, "phady/util/tools.zep", 90 TSRMLS_CC); ZEPHIR_SINIT_VAR(_28); ZVAL_STRING(&_28, ",", 0); ZEPHIR_INIT_VAR(_29); zephir_fast_strpos(_29, _27, &_28, 0 ); if (zephir_is_true(_29)) { zephir_array_fetch_string(&_30, _SERVER, SL("HTTP_X_FORWARDED_FOR"), PH_NOISY | PH_READONLY, "phady/util/tools.zep", 92 TSRMLS_CC); ZEPHIR_INIT_VAR(ips); zephir_fast_explode_str(ips, SL(","), _30, LONG_MAX TSRMLS_CC); ZEPHIR_OBS_VAR(remoteAddr); zephir_array_fetch_long(&remoteAddr, ips, 0, PH_NOISY, "phady/util/tools.zep", 93 TSRMLS_CC); } else { ZEPHIR_OBS_NVAR(remoteAddr); zephir_array_fetch_string(&remoteAddr, _SERVER, SL("HTTP_X_FORWARDED_FOR"), PH_NOISY, "phady/util/tools.zep", 96 TSRMLS_CC); } } else { ZEPHIR_OBS_NVAR(remoteAddr); zephir_array_fetch_string(&remoteAddr, _SERVER, SL("REMOTE_ADDR"), PH_NOISY, "phady/util/tools.zep", 99 TSRMLS_CC); } RETURN_CCTOR(remoteAddr); }