/** * Stops the active profile */ PHP_METHOD(Phalcon_Db_Profiler, stopProfile) { int ZEPHIR_LAST_CALL_STATUS; zval *finalTime, *initialTime = NULL, *activeProfile = NULL, *_0, *_1, *_2; ZEPHIR_MM_GROW(); ZEPHIR_INIT_VAR(finalTime); zephir_microtime(finalTime, ZEPHIR_GLOBAL(global_true) TSRMLS_CC); _0 = zephir_fetch_nproperty_this(this_ptr, SL("_activeProfile"), PH_NOISY_CC); ZEPHIR_CPY_WRT(activeProfile, _0); ZEPHIR_CALL_METHOD(NULL, activeProfile, "setfinaltime", NULL, finalTime); zephir_check_call_status(); ZEPHIR_CALL_METHOD(&initialTime, activeProfile, "getinitialtime", NULL); zephir_check_call_status(); _0 = zephir_fetch_nproperty_this(this_ptr, SL("_totalSeconds"), PH_NOISY_CC); ZEPHIR_INIT_VAR(_1); sub_function(_1, finalTime, initialTime TSRMLS_CC); ZEPHIR_INIT_VAR(_2); zephir_add_function_ex(_2, _0, _1 TSRMLS_CC); zephir_update_property_this(this_ptr, SL("_totalSeconds"), _2 TSRMLS_CC); zephir_update_property_array_append(this_ptr, SL("_allProfiles"), activeProfile TSRMLS_CC); if ((zephir_method_exists_ex(this_ptr, SS("afterendprofile") TSRMLS_CC) == SUCCESS)) { ZEPHIR_CALL_METHOD(NULL, this_ptr, "afterendprofile", NULL, activeProfile); zephir_check_call_status(); } RETURN_THIS(); }
PHP_METHOD(Test_SpectralNorm, Ax) { zval *i, *j, *_0, _1; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 2, 0, &i, &j); ZEPHIR_INIT_VAR(_0); zephir_add_function_ex(_0, i, j TSRMLS_CC); ZEPHIR_SINIT_VAR(_1); zephir_add_function_ex(&_1, i, j TSRMLS_CC); RETURN_MM_DOUBLE(zephir_safe_div_long_double((double) 1, ((zephir_safe_div_long_long((zephir_get_numberval(_0) * (zephir_get_numberval(&_1) + 1)), 2 TSRMLS_CC) + zephir_get_numberval(i)) + (double) (1)) TSRMLS_CC)); }
PHP_METHOD(Test_Fibonnaci, fibArray) { int i, n, k, j; zval *fib, *a, *b, *c = NULL, *_0 = NULL; ZEPHIR_MM_GROW(); ZEPHIR_INIT_VAR(fib); zephir_create_array(fib, 2, 0 TSRMLS_CC); ZEPHIR_INIT_VAR(_0); ZVAL_LONG(_0, 0); zephir_array_fast_append(fib, _0); ZEPHIR_INIT_NVAR(_0); ZVAL_LONG(_0, 1); zephir_array_fast_append(fib, _0); i = 2; n = 10; while (1) { if (!(i < n)) { break; } k = (i - 1); j = (i - 2); zephir_array_fetch_long(&a, fib, k, PH_NOISY | PH_READONLY, "test/fibonnaci.zep", 51 TSRMLS_CC); zephir_array_fetch_long(&b, fib, j, PH_NOISY | PH_READONLY, "test/fibonnaci.zep", 52 TSRMLS_CC); ZEPHIR_INIT_NVAR(c); zephir_add_function_ex(c, a, b TSRMLS_CC); zephir_array_update_long(&fib, i, &c, PH_COPY | PH_SEPARATE, "test/fibonnaci.zep", 54); i++; } RETURN_CCTOR(fib); }
PHP_METHOD(Test_Fibonnaci, fibonacciFinalRecursive) { zephir_fcall_cache_entry *_2 = NULL; zval *n_param = NULL, *_0 = NULL, _1 = zval_used_for_init, *_3 = NULL; int n, ZEPHIR_LAST_CALL_STATUS; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &n_param); n = zephir_get_intval(n_param); if (n == 0) { RETURN_MM_LONG(0); } else { if (n == 1) { RETURN_MM_LONG(1); } else { ZEPHIR_SINIT_VAR(_1); ZVAL_LONG(&_1, (n - 1)); ZEPHIR_CALL_METHOD(&_0, this_ptr, "fibonaccifinalrecursive", &_2, 34, &_1); zephir_check_call_status(); ZEPHIR_SINIT_NVAR(_1); ZVAL_LONG(&_1, (n - 2)); ZEPHIR_CALL_METHOD(&_3, this_ptr, "fibonaccifinalrecursive", &_2, 34, &_1); zephir_check_call_status(); zephir_add_function_ex(return_value, _0, _3 TSRMLS_CC); RETURN_MM(); } } }
PHP_METHOD(Test_Fibonnaci, fibArray2) { int i, n; zval *fib, *_0 = NULL, *_1, *_2, *_3 = NULL; ZEPHIR_MM_GROW(); ZEPHIR_INIT_VAR(fib); zephir_create_array(fib, 2, 0 TSRMLS_CC); ZEPHIR_INIT_VAR(_0); ZVAL_LONG(_0, 0); zephir_array_fast_append(fib, _0); ZEPHIR_INIT_NVAR(_0); ZVAL_LONG(_0, 1); zephir_array_fast_append(fib, _0); i = 2; n = 10; while (1) { if (!(i < n)) { break; } zephir_array_fetch_long(&_1, fib, (i - 1), PH_NOISY | PH_READONLY, "test/fibonnaci.zep", 67 TSRMLS_CC); zephir_array_fetch_long(&_2, fib, (i - 2), PH_NOISY | PH_READONLY, "test/fibonnaci.zep", 67 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_3); zephir_add_function_ex(_3, _1, _2 TSRMLS_CC); zephir_array_update_long(&fib, i, &_3, PH_COPY | PH_SEPARATE, "test/fibonnaci.zep", 67); i++; } RETURN_CCTOR(fib); }
/** * Set an action parameter * * A $value of null will unset the $key if it exists * * @param string $key * @param mixed $value * @return Yaf_Request_Abstract */ PHP_METHOD(Yaf_Request_Abstract, setParam) { zval *_2 = NULL; zval *name = NULL, *value = NULL, *_0, *_1; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 1, &name, &value); ZEPHIR_SEPARATE_PARAM(name); if (!value) { value = ZEPHIR_GLOBAL(global_null); } if (Z_TYPE_P(name) == IS_ARRAY) { _0 = zephir_fetch_nproperty_this(this_ptr, SL("params"), PH_NOISY_CC); ZEPHIR_INIT_VAR(_1); zephir_add_function_ex(_1, _0, name TSRMLS_CC); zephir_update_property_this(this_ptr, SL("params"), _1 TSRMLS_CC); } else { zephir_get_strval(_2, name); ZEPHIR_CPY_WRT(name, _2); zephir_update_property_array(this_ptr, SL("params"), name, value TSRMLS_CC); } RETURN_THIS(); }
PHP_METHOD(Test_Mcall, testMethod6) { zval *a, *b; zephir_fetch_params(0, 2, 0, &a, &b); zephir_add_function_ex(return_value, a, b TSRMLS_CC); return; }
PHP_METHOD(Test_Mcall, testCall9) { zephir_nts_static zephir_fcall_cache_entry *_1 = NULL; int ZEPHIR_LAST_CALL_STATUS; zval *a, *b, *_0 = NULL, *_2 = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 2, 0, &a, &b); ZEPHIR_CALL_METHOD(&_0, this_ptr, "testmethod6", &_1, a, b); zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_2, this_ptr, "testmethod5", NULL, a, b); zephir_check_call_status(); zephir_add_function_ex(return_value, _0, _2 TSRMLS_CC); RETURN_MM(); }
PHP_METHOD(Test_Quantum, harmos) { zend_bool _13, _16, _32, _35; zval *_10 = NULL, *_11 = NULL, *_12 = NULL; zephir_fcall_cache_entry *_4 = NULL, *_6 = NULL, *_8 = NULL, *_36 = NULL; int i, j, n, ZEPHIR_LAST_CALL_STATUS, _14, _15, _17, _18, _33, _34; zval *x_param = NULL, *psr, *psi, *p2, *v, *paramater, *fp = NULL, *tmp, *_0 = NULL, _1 = zval_used_for_init, _2 = zval_used_for_init, *_3 = NULL, *_5 = NULL, *_7 = NULL, *_9 = NULL, *_19, *_20, *_21, *_22, *_23, *_24, *_25, *_26, _27 = zval_used_for_init, *_28, *_29, *_30, *_31; double x, dt, dx, k0, item_psr, item_psi; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &x_param); x = zephir_get_doubleval(x_param); dx = 0.02; k0 = (3.0 * 3.14159265358979323846); dt = zephir_safe_div_double_long((dx * dx), 4.0 TSRMLS_CC); ZEPHIR_INIT_VAR(paramater); zephir_create_array(paramater, 4, 0 TSRMLS_CC); ZEPHIR_INIT_VAR(_0); ZVAL_DOUBLE(_0, dx); zephir_array_fast_append(paramater, _0); ZEPHIR_INIT_NVAR(_0); ZVAL_DOUBLE(_0, k0); zephir_array_fast_append(paramater, _0); ZEPHIR_INIT_NVAR(_0); ZVAL_DOUBLE(_0, dt); zephir_array_fast_append(paramater, _0); ZEPHIR_INIT_NVAR(_0); ZVAL_DOUBLE(_0, x); zephir_array_fast_append(paramater, _0); i = 0; ZEPHIR_INIT_VAR(psr); array_init(psr); ZEPHIR_INIT_VAR(psi); array_init(psi); ZEPHIR_INIT_VAR(p2); array_init(p2); ZEPHIR_INIT_VAR(v); array_init(v); ZEPHIR_SINIT_VAR(_1); ZVAL_STRING(&_1, "harmos.txt", 0); ZEPHIR_SINIT_VAR(_2); ZVAL_STRING(&_2, "w", 0); ZEPHIR_CALL_FUNCTION(&fp, "fopen", NULL, 30, &_1, &_2); zephir_check_call_status(); if (!(zephir_is_true(fp))) { RETURN_MM_LONG(1); } while (1) { if (!(i <= 751)) { break; } ZEPHIR_SINIT_NVAR(_1); ZVAL_DOUBLE(&_1, (k0 * x)); ZEPHIR_CALL_FUNCTION(&_3, "sin", &_4, 10, &_1); zephir_check_call_status(); ZEPHIR_SINIT_NVAR(_1); ZVAL_DOUBLE(&_1, ((x * x) * 2.0)); ZEPHIR_CALL_FUNCTION(&_5, "exp", &_6, 1, &_1); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_7); div_function(_7, _3, _5 TSRMLS_CC); item_psi = zephir_get_numberval(_7); ZEPHIR_SINIT_NVAR(_1); ZVAL_DOUBLE(&_1, (k0 * x)); ZEPHIR_CALL_FUNCTION(&_3, "cos", &_8, 11, &_1); zephir_check_call_status(); ZEPHIR_SINIT_NVAR(_1); ZVAL_DOUBLE(&_1, ((x * x) * 2.0)); ZEPHIR_CALL_FUNCTION(&_5, "exp", &_6, 1, &_1); zephir_check_call_status(); ZEPHIR_INIT_LNVAR(_9); div_function(_9, _3, _5 TSRMLS_CC); item_psr = zephir_get_numberval(_9); ZEPHIR_INIT_NVAR(_10); zephir_create_array(_10, 1, 0 TSRMLS_CC); ZEPHIR_INIT_NVAR(_0); ZVAL_DOUBLE(_0, item_psr); zephir_array_fast_append(_10, _0); zephir_array_update_long(&psr, i, &_10, PH_COPY | PH_SEPARATE, "test/quantum.zep", 39); ZEPHIR_INIT_NVAR(_11); zephir_create_array(_11, 1, 0 TSRMLS_CC); ZEPHIR_INIT_NVAR(_0); ZVAL_DOUBLE(_0, item_psi); zephir_array_fast_append(_11, _0); zephir_array_update_long(&psi, i, &_11, PH_COPY | PH_SEPARATE, "test/quantum.zep", 40); ZEPHIR_INIT_NVAR(_12); zephir_create_array(_12, 1, 0 TSRMLS_CC); ZEPHIR_INIT_NVAR(_0); ZVAL_DOUBLE(_0, (double) ((double) (5.0 * x) * x)); zephir_array_fast_append(_12, _0); zephir_array_update_long(&v, i, &_12, PH_COPY | PH_SEPARATE, "test/quantum.zep", 41); x = (x + dx); i++; } i = 1; j = 1; ZEPHIR_INIT_VAR(tmp); zephir_create_array(tmp, 1, 0 TSRMLS_CC); ZEPHIR_INIT_NVAR(_0); ZVAL_DOUBLE(_0, 2.0); zephir_array_fast_append(tmp, _0); _15 = 20000; _14 = 0; _13 = 0; if (_14 <= _15) { while (1) { if (_13) { _14++; if (!(_14 <= _15)) { break; } } else { _13 = 1; } n = _14; _18 = (751 - 1); _17 = 1; _16 = 0; if (_17 <= _18) { while (1) { if (_16) { _17++; if (!(_17 <= _18)) { break; } } else { _16 = 1; } i = _17; zephir_array_fetch_long(&_19, psr, i, PH_NOISY | PH_READONLY, "test/quantum.zep", 50 TSRMLS_CC); zephir_array_fetch_long(&_20, _19, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 50 TSRMLS_CC); zephir_array_fetch_long(&_21, paramater, 2, PH_NOISY | PH_READONLY, "test/quantum.zep", 50 TSRMLS_CC); zephir_array_fetch_long(&_22, psi, (i + 1), PH_NOISY | PH_READONLY, "test/quantum.zep", 50 TSRMLS_CC); zephir_array_fetch_long(&_23, _22, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 50 TSRMLS_CC); zephir_array_fetch_long(&_24, psi, (i - 1), PH_NOISY | PH_READONLY, "test/quantum.zep", 50 TSRMLS_CC); zephir_array_fetch_long(&_25, _24, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_1); zephir_add_function_ex(&_1, _23, _25 TSRMLS_CC); zephir_array_fetch_long(&_23, tmp, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); zephir_array_fetch_long(&_25, psi, i, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); zephir_array_fetch_long(&_26, _25, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_2); mul_function(&_2, _23, _26 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_7); sub_function(_7, &_1, &_2 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_1); mul_function(&_1, _21, _7 TSRMLS_CC); zephir_array_fetch_long(&_21, paramater, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); zephir_array_fetch_long(&_23, paramater, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_7); mul_function(_7, _21, _23 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_2); div_function(&_2, &_1, _7 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_1); sub_function(&_1, _20, &_2 TSRMLS_CC); zephir_array_fetch_long(&_20, paramater, 2, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); zephir_array_fetch_long(&_21, v, i, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); zephir_array_fetch_long(&_23, _21, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_2); mul_function(&_2, _20, _23 TSRMLS_CC); zephir_array_fetch_long(&_20, psi, i, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); zephir_array_fetch_long(&_23, _20, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 51 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_27); mul_function(&_27, &_2, _23 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_7); zephir_add_function_ex(_7, &_1, &_27 TSRMLS_CC); zephir_array_update_multi(&psr, &_7 TSRMLS_CC, SL("ll"), 2, i, 1); zephir_array_fetch_long(&_23, psr, i, PH_NOISY | PH_READONLY, "test/quantum.zep", 53 TSRMLS_CC); zephir_array_fetch_long(&_26, _23, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 53 TSRMLS_CC); zephir_array_fetch_long(&_28, psr, i, PH_NOISY | PH_READONLY, "test/quantum.zep", 53 TSRMLS_CC); zephir_array_fetch_long(&_29, _28, 1, PH_NOISY | PH_READONLY, "test/quantum.zep", 53 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_1); mul_function(&_1, _26, _29 TSRMLS_CC); zephir_array_fetch_long(&_26, psi, i, PH_NOISY | PH_READONLY, "test/quantum.zep", 53 TSRMLS_CC); zephir_array_fetch_long(&_29, _26, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 53 TSRMLS_CC); zephir_array_fetch_long(&_30, psi, i, PH_NOISY | PH_READONLY, "test/quantum.zep", 53 TSRMLS_CC); zephir_array_fetch_long(&_31, _30, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 53 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_2); mul_function(&_2, _29, _31 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_7); zephir_add_function_ex(_7, &_1, &_2 TSRMLS_CC); zephir_array_update_long(&p2, i, &_7, PH_COPY | PH_SEPARATE, "test/quantum.zep", 53); } } _34 = (751 - 1); _33 = 1; _32 = 0; if (_33 <= _34) { while (1) { if (_32) { _33++; if (!(_33 <= _34)) { break; } } else { _32 = 1; } j = _33; ZEPHIR_INIT_NVAR(_0); ZVAL_LONG(_0, 0); zephir_array_update_multi(&psr, &_0 TSRMLS_CC, SL("ll"), 2, 0, 1); ZEPHIR_INIT_NVAR(_0); ZVAL_LONG(_0, 0); zephir_array_update_multi(&psr, &_0 TSRMLS_CC, SL("ll"), 2, 751, 1); zephir_array_fetch_long(&_19, psi, j, PH_NOISY | PH_READONLY, "test/quantum.zep", 58 TSRMLS_CC); zephir_array_fetch_long(&_20, _19, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 58 TSRMLS_CC); zephir_array_fetch_long(&_21, paramater, 2, PH_NOISY | PH_READONLY, "test/quantum.zep", 58 TSRMLS_CC); zephir_array_fetch_long(&_22, psr, (j + 1), PH_NOISY | PH_READONLY, "test/quantum.zep", 58 TSRMLS_CC); zephir_array_fetch_long(&_23, _22, 1, PH_NOISY | PH_READONLY, "test/quantum.zep", 58 TSRMLS_CC); zephir_array_fetch_long(&_24, psr, (j - 1), PH_NOISY | PH_READONLY, "test/quantum.zep", 58 TSRMLS_CC); zephir_array_fetch_long(&_25, _24, 1, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_1); zephir_add_function_ex(&_1, _23, _25 TSRMLS_CC); zephir_array_fetch_long(&_23, tmp, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); zephir_array_fetch_long(&_25, psr, j, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); zephir_array_fetch_long(&_26, _25, 1, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_2); mul_function(&_2, _23, _26 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_9); sub_function(_9, &_1, &_2 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_1); mul_function(&_1, _21, _9 TSRMLS_CC); zephir_array_fetch_long(&_21, paramater, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); zephir_array_fetch_long(&_23, paramater, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_9); mul_function(_9, _21, _23 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_2); div_function(&_2, &_1, _9 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_1); zephir_add_function_ex(&_1, _20, &_2 TSRMLS_CC); zephir_array_fetch_long(&_20, paramater, 2, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); zephir_array_fetch_long(&_21, v, j, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); zephir_array_fetch_long(&_23, _21, 0, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_2); mul_function(&_2, _20, _23 TSRMLS_CC); zephir_array_fetch_long(&_20, psr, j, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); zephir_array_fetch_long(&_23, _20, 1, PH_NOISY | PH_READONLY, "test/quantum.zep", 59 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_27); mul_function(&_27, &_2, _23 TSRMLS_CC); ZEPHIR_INIT_LNVAR(_9); sub_function(_9, &_1, &_27 TSRMLS_CC); zephir_array_update_multi(&psi, &_9 TSRMLS_CC, SL("ll"), 2, j, 1); } } _35 = n == 0; if (!(_35)) { _35 = zephir_safe_mod_long_long(n, 2000 TSRMLS_CC) == 0; } if (_35) { i = 1; while (1) { if (!(i < (751 - 1))) { break; } zephir_array_fetch_long(&_19, p2, i, PH_NOISY | PH_READONLY, "test/quantum.zep", 67 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_1); ZVAL_STRING(&_1, "%16.8lf %16.8lf %16.8lf \n", 0); ZEPHIR_SINIT_NVAR(_2); ZVAL_DOUBLE(&_2, ((double) i * dx)); ZEPHIR_SINIT_NVAR(_27); ZVAL_DOUBLE(&_27, ((double) n * dt)); ZEPHIR_CALL_FUNCTION(NULL, "fprintf", &_36, 57, fp, &_1, &_2, &_27, _19); zephir_check_call_status(); i = (i + 10); } ZEPHIR_SINIT_NVAR(_1); ZVAL_STRING(&_1, "\n", 0); ZEPHIR_CALL_FUNCTION(NULL, "fprintf", &_36, 57, fp, &_1); zephir_check_call_status(); } j = 1; while (1) { if (!(j < (751 - 1))) { break; } zephir_array_fetch_long(&_19, psi, j, PH_NOISY | PH_READONLY, "test/quantum.zep", 76 TSRMLS_CC); zephir_array_fetch_long(&_20, _19, 1, PH_NOISY | PH_READONLY, "test/quantum.zep", 76 TSRMLS_CC); zephir_array_update_multi(&psi, &_20 TSRMLS_CC, SL("ll"), 2, j, 0); zephir_array_fetch_long(&_20, psr, j, PH_NOISY | PH_READONLY, "test/quantum.zep", 77 TSRMLS_CC); zephir_array_fetch_long(&_21, _20, 1, PH_NOISY | PH_READONLY, "test/quantum.zep", 77 TSRMLS_CC); zephir_array_update_multi(&psr, &_21 TSRMLS_CC, SL("ll"), 2, j, 0); j++; } } } RETURN_MM_BOOL(1); }
/** * @todo this method can be write differently with (P< style match * Matches a user submitted path with parts defined by a map. Assigns and * returns an array of variables on a successful match. * * @param string $path Path used to match against this routing map * @return array|false An array of assigned values or a false on a mismatch */ PHP_METHOD(Yaf_Route_Rewrite, _match) { zephir_nts_static zephir_fcall_cache_entry *_27 = NULL, *_33 = NULL; zend_bool _12, _28, _32; HashTable *_7, *_22, *_35; HashPosition _6, _21, _34; int staticCount, pathStaticCount, ZEPHIR_LAST_CALL_STATUS; zval *path_param = NULL, *values, *matchedPath = NULL, *parts, *variables, *wildcardData, *name = NULL, *part = NULL, *pos = NULL, *pathMatch, *count = NULL, *i = NULL, *varr = NULL, *pathPart = NULL, *tmpReturn = NULL, *_0, *_1 = NULL, *_2 = NULL, *_3, _4 = zval_used_for_init, _5 = zval_used_for_init, **_8, _9 = zval_used_for_init, _10 = zval_used_for_init, *_11 = NULL, _13 = zval_used_for_init, _14 = zval_used_for_init, *_15 = NULL, _16 = zval_used_for_init, _17 = zval_used_for_init, *_18 = NULL, _19 = zval_used_for_init, *_20 = NULL, **_23, *_24 = NULL, *_25, *_26, *_29 = NULL, *_30, *_31 = NULL, **_36; zval *path = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &path_param); zephir_get_strval(path, path_param); staticCount = 0; pathStaticCount = 0; ZEPHIR_INIT_VAR(values); array_init(values); ZEPHIR_INIT_VAR(matchedPath); ZVAL_STRING(matchedPath, "", 1); ZEPHIR_INIT_VAR(parts); array_init(parts); ZEPHIR_INIT_VAR(variables); array_init(variables); ZEPHIR_INIT_VAR(wildcardData); array_init(wildcardData); _0 = zephir_fetch_nproperty_this(this_ptr, SL("_route"), PH_NOISY_CC); if (!ZEPHIR_IS_STRING_IDENTICAL(_0, "")) { ZEPHIR_INIT_VAR(_1); ZEPHIR_INIT_VAR(_2); _3 = zephir_fetch_nproperty_this(this_ptr, SL("_route"), PH_NOISY_CC); ZEPHIR_SINIT_VAR(_4); ZVAL_STRING(&_4, "/", 0); zephir_fast_trim(_2, _3, &_4, ZEPHIR_TRIM_BOTH TSRMLS_CC); ZEPHIR_SINIT_VAR(_5); ZVAL_STRING(&_5, "/", 0); zephir_fast_explode(_1, &_5, _2, LONG_MAX TSRMLS_CC); zephir_is_iterable(_1, &_7, &_6, 0, 0, "yaf/Route/rewrite.zep", 135); for ( ; zephir_hash_get_current_data_ex(_7, (void**) &_8, &_6) == SUCCESS ; zephir_hash_move_forward_ex(_7, &_6) ) { ZEPHIR_GET_HMKEY(pos, _7, _6); ZEPHIR_GET_HVALUE(part, _8); ZEPHIR_SINIT_NVAR(_9); ZVAL_LONG(&_9, 0); ZEPHIR_SINIT_NVAR(_10); ZVAL_LONG(&_10, 1); ZEPHIR_INIT_NVAR(_11); zephir_substr(_11, part, 0 , 1 , 0); _12 = ZEPHIR_IS_STRING(_11, ":"); if (_12) { ZEPHIR_SINIT_NVAR(_13); ZVAL_LONG(&_13, 1); ZEPHIR_SINIT_NVAR(_14); ZVAL_LONG(&_14, 1); ZEPHIR_INIT_NVAR(_15); zephir_substr(_15, part, 1 , 1 , 0); _12 = !ZEPHIR_IS_STRING(_15, ":"); } if (_12) { ZEPHIR_SINIT_NVAR(_16); ZVAL_LONG(&_16, 1); ZEPHIR_INIT_NVAR(name); zephir_substr(name, part, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); zephir_array_update_zval(&parts, pos, &ZEPHIR_GLOBAL(global_null), PH_COPY | PH_SEPARATE); zephir_array_update_zval(&variables, pos, &name, PH_COPY | PH_SEPARATE); } else { ZEPHIR_SINIT_NVAR(_16); ZVAL_LONG(&_16, 0); ZEPHIR_SINIT_NVAR(_17); ZVAL_LONG(&_17, 1); ZEPHIR_INIT_NVAR(_18); zephir_substr(_18, part, 0 , 1 , 0); if (ZEPHIR_IS_STRING(_18, ":")) { ZEPHIR_SINIT_NVAR(_19); ZVAL_LONG(&_19, 1); ZEPHIR_INIT_NVAR(_20); zephir_substr(_20, part, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); ZEPHIR_CPY_WRT(part, _20); } zephir_array_update_zval(&parts, pos, &part, PH_COPY | PH_SEPARATE); if (!ZEPHIR_IS_STRING_IDENTICAL(part, "*")) { staticCount++; } } } } if (!ZEPHIR_IS_STRING_IDENTICAL(path, "")) { ZEPHIR_INIT_VAR(pathMatch); ZEPHIR_SINIT_NVAR(_4); ZVAL_STRING(&_4, "/", 0); zephir_fast_explode(pathMatch, &_4, path, LONG_MAX TSRMLS_CC); zephir_is_iterable(pathMatch, &_22, &_21, 0, 0, "yaf/Route/rewrite.zep", 193); for ( ; zephir_hash_get_current_data_ex(_22, (void**) &_23, &_21) == SUCCESS ; zephir_hash_move_forward_ex(_22, &_21) ) { ZEPHIR_GET_HMKEY(pos, _22, _21); ZEPHIR_GET_HVALUE(pathPart, _23); if (!(zephir_array_key_exists(parts, pos TSRMLS_CC))) { RETURN_MM_BOOL(0); } ZEPHIR_INIT_LNVAR(_24); ZEPHIR_CONCAT_VS(_24, pathPart, "/"); zephir_concat_self(&matchedPath, _24 TSRMLS_CC); zephir_array_fetch(&_25, parts, pos, PH_NOISY | PH_READONLY, "yaf/Route/rewrite.zep", 150 TSRMLS_CC); if (ZEPHIR_IS_STRING(_25, "*")) { ZEPHIR_INIT_NVAR(count); ZVAL_LONG(count, zephir_fast_count_int(pathMatch TSRMLS_CC)); ZEPHIR_CPY_WRT(i, pos); while (1) { if (!(ZEPHIR_LT(i, count))) { break; } zephir_array_fetch(&_26, pathMatch, i, PH_NOISY | PH_READONLY, "yaf/Route/rewrite.zep", 154 TSRMLS_CC); ZEPHIR_CALL_FUNCTION(&varr, "urldecode", &_27, _26); zephir_check_call_status(); _12 = !(zephir_array_isset(wildcardData, varr)); if (_12) { _3 = zephir_fetch_nproperty_this(this_ptr, SL("_default"), PH_NOISY_CC); _12 = !(zephir_array_isset(_3, varr)); } _28 = _12; if (_28) { _28 = !(zephir_array_isset(values, varr)); } if (_28) { ZEPHIR_INIT_LNVAR(_29); if (zephir_array_isset_long(pathMatch, (zephir_get_numberval(i) + 1))) { zephir_array_fetch_long(&_30, pathMatch, (zephir_get_numberval(i) + 1), PH_NOISY | PH_READONLY, "yaf/Route/rewrite.zep", 157 TSRMLS_CC); ZEPHIR_CALL_FUNCTION(&_29, "urldecode", &_27, _30); zephir_check_call_status(); } else { ZEPHIR_INIT_NVAR(_29); ZVAL_NULL(_29); } zephir_array_update_zval(&wildcardData, varr, &_29, PH_COPY | PH_SEPARATE); } ZEPHIR_INIT_NVAR(_1); ZVAL_LONG(_1, 2); ZEPHIR_ADD_ASSIGN(i, _1); } ZEPHIR_INIT_NVAR(matchedPath); ZEPHIR_SINIT_NVAR(_5); ZVAL_STRING(&_5, "/", 0); zephir_fast_join(matchedPath, &_5, pathMatch TSRMLS_CC); break; } if (zephir_array_isset(variables, pos)) { ZEPHIR_OBS_NVAR(name); zephir_array_fetch(&name, variables, pos, PH_NOISY, "yaf/Route/rewrite.zep", 165 TSRMLS_CC); } else { ZEPHIR_INIT_NVAR(name); ZVAL_NULL(name); } ZEPHIR_CALL_FUNCTION(&_31, "urldecode", &_27, pathPart); zephir_check_call_status(); ZEPHIR_CPY_WRT(pathPart, _31); ZEPHIR_OBS_NVAR(part); zephir_array_fetch(&part, parts, pos, PH_NOISY, "yaf/Route/rewrite.zep", 167 TSRMLS_CC); ZEPHIR_SINIT_NVAR(_9); ZVAL_LONG(&_9, 0); ZEPHIR_SINIT_NVAR(_10); ZVAL_LONG(&_10, 2); ZEPHIR_INIT_NVAR(_2); zephir_substr(_2, part, 0 , 2 , 0); if (ZEPHIR_IS_STRING_IDENTICAL(_2, "@@")) { ZEPHIR_SINIT_NVAR(_13); ZVAL_LONG(&_13, 1); ZEPHIR_INIT_NVAR(_11); zephir_substr(_11, part, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); ZEPHIR_CPY_WRT(part, _11); } _28 = Z_TYPE_P(name) == IS_NULL; if (_28) { _28 = !ZEPHIR_IS_EQUAL(part, pathPart); } if (_28) { RETURN_MM_BOOL(0); } _32 = Z_TYPE_P(part) != IS_NULL; if (_32) { ZEPHIR_INIT_LNVAR(_29); ZEPHIR_CONCAT_VSSS(_29, part, "#^", "$#", "iu"); ZEPHIR_CALL_FUNCTION(&_31, "preg_match", &_33, _29, pathPart); zephir_check_call_status(); _32 = !zephir_is_true(_31); } if (_32) { RETURN_MM_BOOL(0); } if (Z_TYPE_P(name) != IS_NULL) { zephir_array_update_zval(&values, name, &pathPart, PH_COPY | PH_SEPARATE); } else { pathStaticCount++; } } } if (staticCount != pathStaticCount) { RETURN_MM_BOOL(0); } ZEPHIR_INIT_VAR(tmpReturn); zephir_add_function_ex(tmpReturn, values, wildcardData TSRMLS_CC); zephir_is_iterable(variables, &_35, &_34, 0, 0, "yaf/Route/rewrite.zep", 212); for ( ; zephir_hash_get_current_data_ex(_35, (void**) &_36, &_34) == SUCCESS ; zephir_hash_move_forward_ex(_35, &_34) ) { ZEPHIR_GET_HVALUE(varr, _36); if (!(zephir_array_key_exists(tmpReturn, varr TSRMLS_CC))) { RETURN_MM_BOOL(0); } } _12 = Z_TYPE_P(values) == IS_NULL; if (_12) { _12 = Z_TYPE_P(wildcardData) == IS_NULL; } _32 = _12; if (_32) { _32 = staticCount != 0; } if (_32) { _3 = zephir_fetch_nproperty_this(this_ptr, SL("_default"), PH_NOISY_CC); ZEPHIR_INIT_LNVAR(_24); zephir_add_function_ex(_24, tmpReturn, _3 TSRMLS_CC); ZEPHIR_CPY_WRT(tmpReturn, _24); } RETURN_CCTOR(tmpReturn); }