/** * Gets row in a specific position of the resultset * * @param int $index * @return Phalcon_Model_Base */ PHP_METHOD(Phalcon_Model_Resultset, offsetGet){ zval *index = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &index) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_CALL_METHOD(r0, this_ptr, "count", PHALCON_NO_CHECK); PHALCON_INIT_VAR(r1); is_smaller_function(r1, index, r0 TSRMLS_CC); if (zend_is_true(r1)) { PHALCON_CALL_METHOD_PARAMS_1_NORETURN(this_ptr, "seek", index, PHALCON_NO_CHECK); PHALCON_ALLOC_ZVAL_MM(r2); PHALCON_CALL_METHOD(r2, this_ptr, "valid", PHALCON_NO_CHECK); if (Z_TYPE_P(r2) != IS_BOOL || (Z_TYPE_P(r2) == IS_BOOL && Z_BVAL_P(r2))) { PHALCON_ALLOC_ZVAL_MM(r3); PHALCON_CALL_METHOD(r3, this_ptr, "current", PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r3); } else { PHALCON_MM_RESTORE(); RETURN_FALSE; } } PHALCON_THROW_EXCEPTION_STR(phalcon_model_exception_ce, "The index does not exist in the cursor"); return; }
/** * Shows a HTML warning message * * * * * @param string $message * @param string $classes * @return string */ PHP_METHOD(Phalcon_Flash, warning){ zval *v0 = NULL, *v1 = NULL; zval *r0 = NULL; zval *p0[] = { NULL, NULL }; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|z", &v0, &v1) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } if (!v1) { PHALCON_INIT_VAR(v1); ZVAL_STRING(v1, "warningMessage", 1); } PHALCON_ALLOC_ZVAL_MM(r0); Z_ADDREF_P(v0); p0[0] = v0; Z_ADDREF_P(v1); p0[1] = v1; PHALCON_CALL_SELF_PARAMS(r0, this_ptr, "_showmessage", 2, p0); Z_DELREF_P(p0[0]); Z_DELREF_P(p0[1]); PHALCON_RETURN_DZVAL(r0); }
/** * Commits the transaction * * @return boolean */ PHP_METHOD(Phalcon_Transaction, commit){ zval *t0 = NULL, *t1 = NULL, *t2 = NULL; zval *a0 = NULL, *a1 = NULL; zval *r0 = NULL; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "_manager", sizeof("_manager")-1, PHALCON_NOISY_FETCH TSRMLS_CC); if (!PHALCON_COMPARE_STRING(t0, "")) { PHALCON_INIT_VAR(a0); array_init(a0); PHALCON_ALLOC_ZVAL_MM(t1); phalcon_read_property(&t1, this_ptr, "_manager", sizeof("_manager")-1, PHALCON_NOISY_FETCH TSRMLS_CC); Z_ADDREF_P(t1); PHALCON_SEPARATE_ARRAY(a0); add_next_index_zval(a0, t1); add_next_index_stringl(a0, "notifyCommit", strlen("notifyCommit"), 1); Z_ADDREF_P(a0); PHALCON_INIT_VAR(a1); array_init(a1); Z_ADDREF_P(this_ptr); PHALCON_SEPARATE_ARRAY(a1); add_next_index_zval(a1, this_ptr); Z_ADDREF_P(a1); PHALCON_CALL_FUNC_PARAMS_2_NORETURN("call_user_func_array", a0, a1, 0x001); Z_DELREF_P(a0); Z_DELREF_P(a1); } PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_ALLOC_ZVAL_MM(t2); phalcon_read_property(&t2, this_ptr, "_connection", sizeof("_connection")-1, PHALCON_NOISY_FETCH TSRMLS_CC); PHALCON_CALL_METHOD(r0, t2, "commit", PHALCON_CALL_DEFAULT); PHALCON_RETURN_DZVAL(r0); }
/** * Generates a external absolute path to an application uri * * @param array|string $params * @return string */ PHP_METHOD(Phalcon_View_Engine, url){ zval *params = NULL; zval *r0 = NULL; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|z", ¶ms) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } if (!params) { PHALCON_INIT_VAR(params); ZVAL_NULL(params); } if (Z_TYPE_P(params) == IS_ARRAY) { } else { PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_CALL_STATIC_PARAMS_1(r0, "phalcon_utils", "geturl", params); PHALCON_RETURN_DZVAL(r0); } PHALCON_MM_RESTORE(); }
/** * Get last row in the resultset * * @return Phalcon_Model_Base */ PHP_METHOD(Phalcon_Model_Resultset, getLast){ zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL; zval *t0 = NULL; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_CALL_METHOD(r0, this_ptr, "count", PHALCON_NO_CHECK); PHALCON_INIT_VAR(t0); ZVAL_LONG(t0, 1); PHALCON_ALLOC_ZVAL_MM(r1); sub_function(r1, r0, t0 TSRMLS_CC); PHALCON_CALL_METHOD_PARAMS_1_NORETURN(this_ptr, "seek", r1, PHALCON_NO_CHECK); PHALCON_ALLOC_ZVAL_MM(r2); PHALCON_CALL_METHOD(r2, this_ptr, "valid", PHALCON_NO_CHECK); if (Z_TYPE_P(r2) != IS_BOOL || (Z_TYPE_P(r2) == IS_BOOL && Z_BVAL_P(r2))) { PHALCON_ALLOC_ZVAL_MM(r3); PHALCON_CALL_METHOD(r3, this_ptr, "current", PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r3); } PHALCON_MM_RESTORE(); RETURN_FALSE; }
/** * Pass any call to the internal adapter object * * @param string $method * @param array $arguments * @return mixed */ PHP_METHOD(Phalcon_Logger, __call){ zval *method = NULL, *arguments = NULL; zval *a0 = NULL, *a1 = NULL; zval *r0 = NULL; zval *t0 = NULL; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|z", &method, &arguments) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } if (!arguments) { PHALCON_INIT_VAR(a0); array_init(a0); PHALCON_CPY_WRT(arguments, a0); } PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_INIT_VAR(a1); array_init(a1); PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "_adapter", sizeof("_adapter")-1, PHALCON_NOISY TSRMLS_CC); phalcon_array_append(&a1, t0, PHALCON_SEPARATE_PLZ TSRMLS_CC); phalcon_array_append(&a1, method, PHALCON_SEPARATE_PLZ TSRMLS_CC); PHALCON_CALL_FUNC_PARAMS_2(r0, "call_user_func_array", a1, arguments, 0x013); PHALCON_RETURN_DZVAL(r0); }
/** * Serializing a resultset will dump all related rows into a big array * * @return string */ PHP_METHOD(Phalcon_Model_Resultset, serialize){ zval *records = NULL; zval *a0 = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL; PHALCON_MM_GROW(); PHALCON_INIT_VAR(a0); array_init(a0); PHALCON_CPY_WRT(records, a0); PHALCON_CALL_METHOD_NORETURN(this_ptr, "rewind", PHALCON_NO_CHECK); ws_fd08_1: PHALCON_INIT_VAR(r0); PHALCON_CALL_METHOD(r0, this_ptr, "valid", PHALCON_NO_CHECK); if (Z_TYPE_P(r0) != IS_BOOL || (Z_TYPE_P(r0) == IS_BOOL && !Z_BVAL_P(r0))) { goto we_fd08_1; } PHALCON_INIT_VAR(r1); PHALCON_CALL_METHOD(r1, this_ptr, "current", PHALCON_NO_CHECK); phalcon_array_append(&records, r1, PHALCON_SEPARATE_PLZ TSRMLS_CC); PHALCON_CALL_METHOD_NORETURN(this_ptr, "next", PHALCON_NO_CHECK); goto ws_fd08_1; we_fd08_1: PHALCON_ALLOC_ZVAL_MM(r2); PHALCON_CALL_FUNC_PARAMS_1(r2, "serialize", records, 0x057); PHALCON_RETURN_DZVAL(r2); }
/** * Returns cached ouput on another view stage * * @return array */ PHP_METHOD(Phalcon_View_Engine, getContent){ zval *r0 = NULL; zval *t0 = NULL; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "_view", sizeof("_view")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_CALL_METHOD(r0, t0, "getcontent", PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r0); }
/** * Checks whether internal connection is under an active transaction * * @return boolean */ PHP_METHOD(Phalcon_Transaction, isValid){ zval *r0 = NULL; zval *t0 = NULL; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "_connection", sizeof("_connection")-1, PHALCON_NOISY_FETCH TSRMLS_CC); PHALCON_CALL_METHOD(r0, t0, "isundertransaction", PHALCON_CALL_DEFAULT); PHALCON_RETURN_DZVAL(r0); }
/** * Returns the total number of SQL statements processed * * @return integer */ PHP_METHOD(Phalcon_Db_Profiler, getNumberTotalStatements){ zval *t0 = NULL; zval *r0 = NULL; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "_allProfiles", sizeof("_allProfiles")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(r0); phalcon_fast_count(r0, t0 TSRMLS_CC); PHALCON_RETURN_DZVAL(r0); }
/** * Gets HTTP raws request body * * @return string */ PHP_METHOD(Phalcon_Request, getRawBody){ zval *r0 = NULL; zval *c0 = NULL; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, "php://input", 1); PHALCON_CALL_FUNC_PARAMS_1(r0, "file_get_contents", c0, 0x01A); PHALCON_RETURN_DZVAL(r0); }
/** * Gets charsets array and their quality accepted by the browser/client from $_SERVER['HTTP_ACCEPT_CHARSET'] * * @return array */ PHP_METHOD(Phalcon_Request, getClientCharsets){ zval *r0 = NULL; zval *c0 = NULL, *c1 = NULL; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, "HTTP_ACCEPT_CHARSET", 1); PHALCON_INIT_VAR(c1); ZVAL_STRING(c1, "charset", 1); PHALCON_CALL_METHOD_PARAMS_2(r0, this_ptr, "_getqualityheader", c0, c1, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r0); }
/** * Gets languages array and their quality accepted by the browser/client from $_SERVER['HTTP_ACCEPT_LANGUAGE'] * * @return array */ PHP_METHOD(Phalcon_Request, getLanguages){ zval *r0 = NULL; zval *c0 = NULL, *c1 = NULL; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, "HTTP_ACCEPT_LANGUAGE", 1); PHALCON_INIT_VAR(c1); ZVAL_STRING(c1, "language", 1); PHALCON_CALL_METHOD_PARAMS_2(r0, this_ptr, "_getqualityheader", c0, c1, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r0); }
/** * Gets best language accepted by the browser/client from $_SERVER['HTTP_ACCEPT_LANGUAGE'] * * @return string */ PHP_METHOD(Phalcon_Request, getBestLanguage){ zval *r0 = NULL, *r1 = NULL; zval *c0 = NULL; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_ALLOC_ZVAL_MM(r1); PHALCON_CALL_METHOD(r1, this_ptr, "getlanguages", PHALCON_NO_CHECK); PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, "language", 1); PHALCON_CALL_METHOD_PARAMS_2(r0, this_ptr, "_getbestquality", r1, c0, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r0); }
/** * Gets a list of columns * * @param array $columnList * @return string */ PHP_METHOD(Phalcon_Db_Dialect_Mysql, getColumnList){ zval *column_list = NULL, *str_list = NULL, *column = NULL; zval *a0 = NULL; zval *r0 = NULL, *r1 = NULL; zval *c0 = NULL; HashTable *ah0; HashPosition hp0; zval **hd; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &column_list) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_INIT_VAR(a0); array_init(a0); PHALCON_CPY_WRT(str_list, a0); if (phalcon_valid_foreach(column_list TSRMLS_CC)) { ah0 = Z_ARRVAL_P(column_list); zend_hash_internal_pointer_reset_ex(ah0, &hp0); fes_52be_0: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto fee_52be_0; } PHALCON_INIT_VAR(column); ZVAL_ZVAL(column, *hd, 1, 0); PHALCON_INIT_VAR(r0); PHALCON_CONCAT_SVS(r0, "`", column, "`"); phalcon_array_append(&str_list, r0, PHALCON_SEPARATE_PLZ TSRMLS_CC); zend_hash_move_forward_ex(ah0, &hp0); goto fes_52be_0; fee_52be_0: if(0){} } else { return; } PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, ", ", 1); PHALCON_ALLOC_ZVAL_MM(r1); phalcon_fast_join(r1, c0, str_list TSRMLS_CC); PHALCON_RETURN_DZVAL(r1); }
/** * Unserializes data after retrieving it * * @param mixed $data */ PHP_METHOD(Phalcon_Cache_Frontend_Data, afterRetrieve){ zval *data = NULL; zval *r0 = NULL; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &data) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_CALL_FUNC_PARAMS_1(r0, "unserialize", data, 0x058); PHALCON_RETURN_DZVAL(r0); }
PHP_METHOD(Phalcon_Internal_TestParent, smp6){ zval *v0 = NULL, *v1 = NULL, *v2 = NULL, *v3 = NULL; zval *t0 = NULL, *t1 = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL, *r4 = NULL; zval *p0[] = { NULL, NULL }; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zzzz", &v0, &v1, &v2, &v3) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_INIT_VAR(t0); ZVAL_LONG(t0, 10); PHALCON_INIT_VAR(r0); is_smaller_function(r0, t0, v1 TSRMLS_CC); if (zend_is_true(r0)) { PHALCON_ALLOC_ZVAL_MM(r1); mul_function(r1, v2, v3 TSRMLS_CC); PHALCON_RETURN_CTOR(r1); } else { PHALCON_INIT_VAR(t1); ZVAL_LONG(t1, 30); PHALCON_INIT_VAR(r2); is_smaller_function(r2, v2, t1 TSRMLS_CC); if (zend_is_true(r2)) { PHALCON_ALLOC_ZVAL_MM(r3); mul_function(r3, v1, v3 TSRMLS_CC); PHALCON_RETURN_CTOR(r3); } else { PHALCON_ALLOC_ZVAL_MM(r4); Z_ADDREF_P(v1); p0[0] = v1; Z_ADDREF_P(v2); p0[1] = v2; PHALCON_CALL_METHOD_PARAMS(r4, v0, "mp7", 2, p0, PHALCON_CALL_DEFAULT); Z_DELREF_P(p0[0]); Z_DELREF_P(p0[1]); PHALCON_RETURN_DZVAL(r4); } } PHALCON_MM_RESTORE(); RETURN_NULL(); }
/** * Get first row in the resultset * * @return Phalcon_Model_Base */ PHP_METHOD(Phalcon_Model_Resultset, getFirst){ zval *r0 = NULL, *r1 = NULL; PHALCON_MM_GROW(); PHALCON_CALL_METHOD_NORETURN(this_ptr, "rewind", PHALCON_NO_CHECK); PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_CALL_METHOD(r0, this_ptr, "valid", PHALCON_NO_CHECK); if (Z_TYPE_P(r0) != IS_BOOL || (Z_TYPE_P(r0) == IS_BOOL && Z_BVAL_P(r0))) { PHALCON_ALLOC_ZVAL_MM(r1); PHALCON_CALL_METHOD(r1, this_ptr, "current", PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r1); } PHALCON_MM_RESTORE(); RETURN_FALSE; }
/** * Forwards execution flow to another controller/action. * * @param string $uri */ PHP_METHOD(Phalcon_Controller, _forward){ zval *uri = NULL; zval *r0 = NULL; zval *t0 = NULL; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &uri) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "dispatcher", sizeof("dispatcher")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_CALL_METHOD_PARAMS_1(r0, t0, "forward", uri, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r0); }
/** * Set a dispatching parameter * * @param mixed $index * @param mixed $value */ PHP_METHOD(Phalcon_Controller, _setParam){ zval *index = NULL, *value = NULL; zval *r0 = NULL; zval *t0 = NULL; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz", &index, &value) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "dispatcher", sizeof("dispatcher")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_CALL_METHOD_PARAMS_2(r0, t0, "setparam", index, value, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r0); }
/** * Gets variable from $_GET superglobal applying filters if needed * * @param string $name * @param string|array $filters * @return mixed */ PHP_METHOD(Phalcon_Request, getQuery){ zval *name = NULL, *filters = NULL; zval *g0 = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL; int eval_int; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|z", &name, &filters) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } if (!filters) { PHALCON_INIT_VAR(filters); ZVAL_NULL(filters); } phalcon_get_global(&g0, "_GET", sizeof("_GET") TSRMLS_CC); eval_int = phalcon_array_isset(g0, name); if (eval_int) { if (zend_is_true(filters)) { PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_ALLOC_ZVAL_MM(r1); PHALCON_CALL_METHOD(r1, this_ptr, "getfilter", PHALCON_NO_CHECK); PHALCON_ALLOC_ZVAL_MM(r2); phalcon_array_fetch(&r2, g0, name, PHALCON_NOISY TSRMLS_CC); PHALCON_CALL_METHOD_PARAMS_2(r0, r1, "sanitize", r2, filters, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r0); } else { PHALCON_ALLOC_ZVAL_MM(r3); phalcon_array_fetch(&r3, g0, name, PHALCON_NOISY TSRMLS_CC); PHALCON_RETURN_CHECK_CTOR(r3); } } PHALCON_MM_RESTORE(); RETURN_NULL(); }
/** * Returns a local path * * @param array|string $params * @return string */ PHP_METHOD(Phalcon_View_Engine, path){ zval *params = NULL; zval *r0 = NULL; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|z", ¶ms) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } if (!params) { PHALCON_INIT_VAR(params); ZVAL_STRING(params, "", 1); } PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_CALL_STATIC_PARAMS_1(r0, "phalcon_utils", "getlocalpath", params); PHALCON_RETURN_DZVAL(r0); }
/** * Gets active server address IP * * @return string */ PHP_METHOD(Phalcon_Request, getServerAddress){ zval *g0 = NULL; zval *r0 = NULL, *r1 = NULL; zval *c0 = NULL; int eval_int; PHALCON_MM_GROW(); phalcon_get_global(&g0, "_SERVER", sizeof("_SERVER") TSRMLS_CC); eval_int = phalcon_array_isset_string(g0, "SERVER_ADDR", strlen("SERVER_ADDR")+1); if (eval_int) { PHALCON_ALLOC_ZVAL_MM(r0); phalcon_array_fetch_string(&r0, g0, "SERVER_ADDR", strlen("SERVER_ADDR"), PHALCON_NOISY TSRMLS_CC); PHALCON_RETURN_CHECK_CTOR(r0); } PHALCON_ALLOC_ZVAL_MM(r1); PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, "localhost", 1); PHALCON_CALL_FUNC_PARAMS_1(r1, "gethostbyname", c0, 0x047); PHALCON_RETURN_DZVAL(r1); }
/** * Returns the first row in a SQL query result * * * * @param string $sqlQuery * @param int $fetchMode * @return array */ PHP_METHOD(Phalcon_Db, fetchOne){ zval *sql_query = NULL, *fetch_mode = NULL, *result = NULL; zval *r0 = NULL, *r1 = NULL; zval *a0 = NULL; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|z", &sql_query, &fetch_mode) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } if (!fetch_mode) { PHALCON_INIT_VAR(fetch_mode); ZVAL_LONG(fetch_mode, 2); } PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_CALL_METHOD_PARAMS_1(r0, this_ptr, "query", sql_query, PHALCON_NO_CHECK); PHALCON_CPY_WRT(result, r0); if (Z_TYPE_P(result) == IS_OBJECT) { PHALCON_CALL_METHOD_PARAMS_1_NORETURN(result, "setfetchmode", fetch_mode, PHALCON_NO_CHECK); PHALCON_ALLOC_ZVAL_MM(r1); PHALCON_CALL_METHOD(r1, result, "fetcharray", PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r1); } else { PHALCON_INIT_VAR(a0); array_init(a0); PHALCON_RETURN_CTOR(a0); } PHALCON_MM_RESTORE(); }
PHP_METHOD(Phalcon_Internal_TestDummy, f1){ zval *v0 = NULL; zval *r0 = NULL; zval *t0 = NULL; zval *p0[] = { NULL }; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &v0) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "_d1", sizeof("_d1")-1, PHALCON_NOISY_FETCH TSRMLS_CC); Z_ADDREF_P(v0); p0[0] = v0; PHALCON_CALL_METHOD_PARAMS(r0, t0, "t12", 1, p0, PHALCON_CALL_DEFAULT); Z_DELREF_P(p0[0]); PHALCON_RETURN_DZVAL(r0); }
/** * Magic method __get * * @param string $propertyName */ PHP_METHOD(Phalcon_Controller, __get){ zval *property_name = NULL, *model = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL, *r4 = NULL; zval *t0 = NULL, *t1 = NULL, *t2 = NULL, *t3 = NULL, *t4 = NULL; zval *i0 = NULL, *i1 = NULL; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &property_name) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } if (PHALCON_COMPARE_STRING(property_name, "view")) { PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_CALL_METHOD(r0, this_ptr, "_getviewcomponent", PHALCON_NO_CHECK); phalcon_update_property_zval(this_ptr, "view", strlen("view"), r0 TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "view", sizeof("view")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_RETURN_CHECK_CTOR(t0); } if (PHALCON_COMPARE_STRING(property_name, "filter")) { PHALCON_ALLOC_ZVAL_MM(i0); object_init_ex(i0, phalcon_filter_ce); PHALCON_CALL_METHOD_NORETURN(i0, "__construct", PHALCON_CHECK); phalcon_update_property_zval(this_ptr, "filter", strlen("filter"), i0 TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(t1); phalcon_read_property(&t1, this_ptr, "filter", sizeof("filter")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_RETURN_CHECK_CTOR(t1); } if (PHALCON_COMPARE_STRING(property_name, "session")) { PHALCON_ALLOC_ZVAL_MM(i1); object_init_ex(i1, phalcon_session_namespace_ce); PHALCON_ALLOC_ZVAL_MM(r1); phalcon_get_class(r1, this_ptr TSRMLS_CC); PHALCON_CALL_METHOD_PARAMS_1_NORETURN(i1, "__construct", r1, PHALCON_CHECK); phalcon_update_property_zval(this_ptr, "session", strlen("session"), i1 TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(t2); phalcon_read_property(&t2, this_ptr, "session", sizeof("session")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_RETURN_CHECK_CTOR(t2); } PHALCON_ALLOC_ZVAL_MM(t3); phalcon_read_property(&t3, this_ptr, "model", sizeof("model")-1, PHALCON_NOISY TSRMLS_CC); if (zend_is_true(t3)) { PHALCON_ALLOC_ZVAL_MM(t4); phalcon_read_property(&t4, this_ptr, "model", sizeof("model")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_CPY_WRT(model, t4); PHALCON_ALLOC_ZVAL_MM(r2); PHALCON_CALL_METHOD_PARAMS_1(r2, model, "ismodel", property_name, PHALCON_NO_CHECK); if (zend_is_true(r2)) { PHALCON_ALLOC_ZVAL_MM(r3); PHALCON_CALL_METHOD_PARAMS_1(r3, model, "getmodel", property_name, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r3); } } PHALCON_ALLOC_ZVAL_MM(r4); PHALCON_CONCAT_LEFT(r4, "Access to undefined property ", property_name); PHALCON_CALL_FUNC_PARAMS_1_NORETURN("trigger_error", r4, 0x033); PHALCON_MM_RESTORE(); RETURN_NULL(); }
/** * Generates SQL to add the table creation options * * @param array $definition * @return array */ PHP_METHOD(Phalcon_Db_Dialect_Mysql, _getTableOptions){ zval *definition = NULL, *table_options = NULL, *engine = NULL, *auto_increment = NULL; zval *table_collation = NULL, *collation_parts = NULL; zval *a0 = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL, *r4 = NULL, *r5 = NULL, *r6 = NULL; zval *r7 = NULL, *r8 = NULL, *r9 = NULL, *r10 = NULL, *r11 = NULL, *r12 = NULL, *r13 = NULL; zval *r14 = NULL, *r15 = NULL, *r16 = NULL, *r17 = NULL, *r18 = NULL; zval *c0 = NULL, *c1 = NULL; int eval_int; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &definition) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_INIT_VAR(a0); array_init(a0); PHALCON_CPY_WRT(table_options, a0); PHALCON_ALLOC_ZVAL_MM(r0); phalcon_array_fetch_string(&r0, definition, "options", strlen("options"), PHALCON_NOISY TSRMLS_CC); eval_int = phalcon_array_isset_string(r0, "ENGINE", strlen("ENGINE")+1); if (eval_int) { PHALCON_ALLOC_ZVAL_MM(r1); phalcon_array_fetch_string(&r1, definition, "options", strlen("options"), PHALCON_NOISY TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(r2); phalcon_array_fetch_string(&r2, r1, "ENGINE", strlen("ENGINE"), PHALCON_NOISY TSRMLS_CC); PHALCON_CPY_WRT(engine, r2); PHALCON_ALLOC_ZVAL_MM(r3); phalcon_array_fetch_string(&r3, definition, "options", strlen("options"), PHALCON_NOISY TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(r4); phalcon_array_fetch_string(&r4, r3, "ENGINE", strlen("ENGINE"), PHALCON_NOISY TSRMLS_CC); if (zend_is_true(r4)) { PHALCON_ALLOC_ZVAL_MM(r5); PHALCON_CONCAT_SV(r5, "ENGINE=", engine); phalcon_array_append(&table_options, r5, PHALCON_SEPARATE_PLZ TSRMLS_CC); } } PHALCON_ALLOC_ZVAL_MM(r6); phalcon_array_fetch_string(&r6, definition, "options", strlen("options"), PHALCON_NOISY TSRMLS_CC); eval_int = phalcon_array_isset_string(r6, "AUTO_INCREMENT", strlen("AUTO_INCREMENT")+1); if (eval_int) { PHALCON_ALLOC_ZVAL_MM(r7); phalcon_array_fetch_string(&r7, definition, "options", strlen("options"), PHALCON_NOISY TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(r8); phalcon_array_fetch_string(&r8, r7, "AUTO_INCREMENT", strlen("AUTO_INCREMENT"), PHALCON_NOISY TSRMLS_CC); PHALCON_CPY_WRT(auto_increment, r8); if (zend_is_true(auto_increment)) { PHALCON_ALLOC_ZVAL_MM(r9); PHALCON_CONCAT_SV(r9, "AUTO_INCREMENT=", auto_increment); phalcon_array_append(&table_options, r9, PHALCON_SEPARATE_PLZ TSRMLS_CC); } } PHALCON_ALLOC_ZVAL_MM(r10); phalcon_array_fetch_string(&r10, definition, "options", strlen("options"), PHALCON_NOISY TSRMLS_CC); eval_int = phalcon_array_isset_string(r10, "TABLE_COLLATION", strlen("TABLE_COLLATION")+1); if (eval_int) { PHALCON_ALLOC_ZVAL_MM(r11); phalcon_array_fetch_string(&r11, definition, "options", strlen("options"), PHALCON_NOISY TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(r12); phalcon_array_fetch_string(&r12, r11, "TABLE_COLLATION", strlen("TABLE_COLLATION"), PHALCON_NOISY TSRMLS_CC); PHALCON_CPY_WRT(table_collation, r12); if (zend_is_true(table_collation)) { PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, "_", 1); PHALCON_ALLOC_ZVAL_MM(r13); phalcon_fast_explode(r13, c0, table_collation TSRMLS_CC); PHALCON_CPY_WRT(collation_parts, r13); PHALCON_ALLOC_ZVAL_MM(r14); PHALCON_ALLOC_ZVAL_MM(r15); phalcon_array_fetch_long(&r15, collation_parts, 0, PHALCON_NOISY TSRMLS_CC); PHALCON_CONCAT_SV(r14, "DEFAULT CHARSET=", r15); phalcon_array_append(&table_options, r14, PHALCON_SEPARATE_PLZ TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(r16); PHALCON_CONCAT_SV(r16, "COLLATE=", table_collation); phalcon_array_append(&table_options, r16, PHALCON_SEPARATE_PLZ TSRMLS_CC); } } PHALCON_ALLOC_ZVAL_MM(r17); phalcon_fast_count(r17, table_options TSRMLS_CC); if (zend_is_true(r17)) { PHALCON_INIT_VAR(c1); ZVAL_STRING(c1, " ", 1); PHALCON_ALLOC_ZVAL_MM(r18); phalcon_fast_join(r18, c1, table_options TSRMLS_CC); PHALCON_RETURN_DZVAL(r18); } PHALCON_MM_RESTORE(); RETURN_NULL(); }
/** * Inserts data into a table using custom RBDM SQL syntax * * * * @param string $table * @param array $values * @param array $fields * @param boolean $automaticQuotes * @return boolean */ PHP_METHOD(Phalcon_Db, insert){ zval *table = NULL, *values = NULL, *fields = NULL, *automatic_quotes = NULL; zval *value = NULL, *key = NULL, *joined_values = NULL, *insert_sql = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL, *r4 = NULL, *r5 = NULL, *r6 = NULL; zval *r7 = NULL, *r8 = NULL, *r9 = NULL, *r10 = NULL; zval *i0 = NULL; zval *c0 = NULL, *c1 = NULL; HashTable *ah0; HashPosition hp0; zval **hd; char *hash_index; uint hash_index_len; ulong hash_num; int hash_type; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz|zz", &table, &values, &fields, &automatic_quotes) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_SEPARATE_PARAM(values); if (!fields) { PHALCON_INIT_VAR(fields); ZVAL_NULL(fields); } if (!automatic_quotes) { PHALCON_INIT_VAR(automatic_quotes); ZVAL_BOOL(automatic_quotes, 0); } if (Z_TYPE_P(values) == IS_ARRAY) { PHALCON_ALLOC_ZVAL_MM(r0); phalcon_fast_count(r0, values TSRMLS_CC); if (!zend_is_true(r0)) { PHALCON_ALLOC_ZVAL_MM(i0); object_init_ex(i0, phalcon_db_exception_ce); PHALCON_ALLOC_ZVAL_MM(r1); PHALCON_CONCAT_SVS(r1, "Unable to insert into ", table, " without data"); PHALCON_CALL_METHOD_PARAMS_1_NORETURN(i0, "__construct", r1, PHALCON_CHECK); phalcon_throw_exception(i0 TSRMLS_CC); return; } else { if (zend_is_true(automatic_quotes)) { if (phalcon_valid_foreach(values TSRMLS_CC)) { ALLOC_HASHTABLE(ah0); zend_hash_init(ah0, 0, NULL, NULL, 0); zend_hash_copy(ah0, Z_ARRVAL_P(values), NULL, NULL, sizeof(zval*)); zend_hash_internal_pointer_reset_ex(ah0, &hp0); fes_e7f0_1: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto fee_e7f0_1; } else { PHALCON_INIT_VAR(key); PHALCON_GET_FOREACH_KEY(key, ah0, hp0); } PHALCON_INIT_VAR(value); ZVAL_ZVAL(value, *hd, 1, 0); if (Z_TYPE_P(value) == IS_OBJECT) { PHALCON_INIT_VAR(r2); phalcon_instance_of(r2, value, phalcon_db_rawvalue_ce TSRMLS_CC); if (zend_is_true(r2)) { PHALCON_INIT_VAR(r3); PHALCON_CALL_METHOD_PARAMS_1(r3, this_ptr, "escapestring", value, PHALCON_NO_CHECK); phalcon_array_update(&values, key, &r3, PHALCON_SEPARATE_PLZ, PHALCON_COPY, PHALCON_NO_CTOR TSRMLS_CC); goto fes_e7f0_1; } } PHALCON_INIT_VAR(r4); PHALCON_INIT_VAR(r5); PHALCON_CALL_METHOD_PARAMS_1(r5, this_ptr, "escapestring", value, PHALCON_NO_CHECK); PHALCON_CONCAT_SVS(r4, "'", r5, "'"); phalcon_array_update(&values, key, &r4, PHALCON_SEPARATE_PLZ, PHALCON_COPY, PHALCON_NO_CTOR TSRMLS_CC); zend_hash_move_forward_ex(ah0, &hp0); goto fes_e7f0_1; fee_e7f0_1: zend_hash_destroy(ah0); efree(ah0); } else { return; } } } PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, ", ", 1); PHALCON_ALLOC_ZVAL_MM(r6); phalcon_fast_join(r6, c0, values TSRMLS_CC); PHALCON_CPY_WRT(joined_values, r6); if (Z_TYPE_P(fields) == IS_ARRAY) { PHALCON_ALLOC_ZVAL_MM(r7); PHALCON_INIT_VAR(c1); ZVAL_STRING(c1, ", ", 1); PHALCON_ALLOC_ZVAL_MM(r8); phalcon_fast_join(r8, c1, fields TSRMLS_CC); PHALCON_CONCAT_SVSVSVS(r7, "INSERT INTO ", table, " (", r8, ") VALUES (", joined_values, ")"); PHALCON_CPY_WRT(insert_sql, r7); } else { PHALCON_ALLOC_ZVAL_MM(r9); PHALCON_CONCAT_SVSVS(r9, "INSERT INTO ", table, " VALUES (", joined_values, ")"); PHALCON_CPY_WRT(insert_sql, r9); } PHALCON_ALLOC_ZVAL_MM(r10); PHALCON_CALL_METHOD_PARAMS_1(r10, this_ptr, "query", insert_sql, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r10); } else { PHALCON_THROW_EXCEPTION_STR(phalcon_db_exception_ce, "The second parameter for insert isn't an Array"); return; } PHALCON_MM_RESTORE(); }
/** * Updates data on a table using custom RBDM SQL syntax * * * * @param string $table * @param array $fields * @param array $values * @param string $whereCondition * @param boolean $automaticQuotes * @return boolean */ PHP_METHOD(Phalcon_Db, update){ zval *table = NULL, *fields = NULL, *values = NULL, *where_condition = NULL; zval *automatic_quotes = NULL, *i = NULL, *update_values = NULL, *update_sql = NULL; zval *field = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL, *r4 = NULL, *r5 = NULL, *r6 = NULL; zval *r7 = NULL, *r8 = NULL, *r9 = NULL, *r10 = NULL, *r11 = NULL, *r12 = NULL, *r13 = NULL; zval *r14 = NULL, *r15 = NULL, *r16 = NULL, *r17 = NULL, *r18 = NULL; zval *a0 = NULL; zval *c0 = NULL; zval *t0 = NULL; HashTable *ah0; HashPosition hp0; zval **hd; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zzz|zz", &table, &fields, &values, &where_condition, &automatic_quotes) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_SEPARATE_PARAM(values); if (!where_condition) { PHALCON_INIT_VAR(where_condition); ZVAL_NULL(where_condition); } if (!automatic_quotes) { PHALCON_INIT_VAR(automatic_quotes); ZVAL_BOOL(automatic_quotes, 0); } PHALCON_ALLOC_ZVAL_MM(r0); phalcon_fast_count(r0, fields TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(r1); phalcon_fast_count(r1, values TSRMLS_CC); PHALCON_INIT_VAR(r2); is_not_equal_function(r2, r0, r1 TSRMLS_CC); if (zend_is_true(r2)) { PHALCON_THROW_EXCEPTION_STR(phalcon_db_exception_ce, "The number of values to update is not the same as fields"); return; } PHALCON_INIT_VAR(i); ZVAL_LONG(i, 0); PHALCON_INIT_VAR(a0); array_init(a0); PHALCON_CPY_WRT(update_values, a0); PHALCON_ALLOC_ZVAL_MM(r3); PHALCON_CONCAT_SVS(r3, "UPDATE ", table, " SET "); PHALCON_CPY_WRT(update_sql, r3); if (phalcon_valid_foreach(fields TSRMLS_CC)) { ah0 = Z_ARRVAL_P(fields); zend_hash_internal_pointer_reset_ex(ah0, &hp0); fes_e7f0_2: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto fee_e7f0_2; } PHALCON_INIT_VAR(field); ZVAL_ZVAL(field, *hd, 1, 0); if (zend_is_true(automatic_quotes)) { PHALCON_INIT_VAR(r4); phalcon_array_fetch(&r4, values, i, PHALCON_NOISY TSRMLS_CC); if (Z_TYPE_P(r4) == IS_OBJECT) { PHALCON_INIT_VAR(r5); phalcon_array_fetch(&r5, values, i, PHALCON_NOISY TSRMLS_CC); PHALCON_INIT_VAR(r6); phalcon_instance_of(r6, r5, phalcon_db_rawvalue_ce TSRMLS_CC); if (zend_is_true(r6)) { PHALCON_INIT_VAR(r7); PHALCON_INIT_VAR(r8); PHALCON_INIT_VAR(r9); phalcon_array_fetch(&r9, values, i, PHALCON_NOISY TSRMLS_CC); PHALCON_CALL_METHOD(r8, r9, "getvalue", PHALCON_NO_CHECK); PHALCON_CALL_METHOD_PARAMS_1(r7, this_ptr, "escapestring", r8, PHALCON_NO_CHECK); phalcon_array_update(&values, i, &r7, PHALCON_SEPARATE_PLZ, PHALCON_COPY, PHALCON_NO_CTOR TSRMLS_CC); goto fes_e7f0_2; } } PHALCON_INIT_VAR(r10); PHALCON_INIT_VAR(r11); PHALCON_INIT_VAR(r12); phalcon_array_fetch(&r12, values, i, PHALCON_NOISY TSRMLS_CC); PHALCON_CALL_METHOD_PARAMS_1(r11, this_ptr, "escapestring", r12, PHALCON_NO_CHECK); PHALCON_CONCAT_SVS(r10, "'", r11, "'"); phalcon_array_update(&values, i, &r10, PHALCON_SEPARATE_PLZ, PHALCON_COPY, PHALCON_NO_CTOR TSRMLS_CC); } PHALCON_INIT_VAR(r13); PHALCON_INIT_VAR(r14); phalcon_array_fetch(&r14, values, i, PHALCON_NOISY TSRMLS_CC); PHALCON_CONCAT_VSV(r13, field, " = ", r14); phalcon_array_append(&update_values, r13, PHALCON_SEPARATE_PLZ TSRMLS_CC); PHALCON_SEPARATE(i); increment_function(i); zend_hash_move_forward_ex(ah0, &hp0); goto fes_e7f0_2; fee_e7f0_2: if(0){} } else { return; } PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, ", ", 1); PHALCON_ALLOC_ZVAL_MM(r15); phalcon_fast_join(r15, c0, update_values TSRMLS_CC); phalcon_concat_self(&update_sql, r15 TSRMLS_CC); PHALCON_INIT_VAR(t0); ZVAL_NULL(t0); PHALCON_INIT_VAR(r16); is_not_equal_function(r16, where_condition, t0 TSRMLS_CC); if (zend_is_true(r16)) { PHALCON_ALLOC_ZVAL_MM(r17); PHALCON_CONCAT_SV(r17, " WHERE ", where_condition); phalcon_concat_self(&update_sql, r17 TSRMLS_CC); } PHALCON_ALLOC_ZVAL_MM(r18); PHALCON_CALL_METHOD_PARAMS_1(r18, this_ptr, "query", update_sql, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r18); }
/** * Returns a cached content * * @param string $keyName * @return mixed */ PHP_METHOD(Phalcon_Cache_Backend_File, get){ zval *key_name = NULL, *backend = NULL, *front_end = NULL, *sanitize_key = NULL; zval *cache_file = NULL, *time = NULL, *lifetime = NULL, *cached_content = NULL; zval *t0 = NULL, *t1 = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL, *r4 = NULL, *r5 = NULL, *r6 = NULL; zval *r7 = NULL, *r8 = NULL, *r9 = NULL; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &key_name) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "_backendOptions", sizeof("_backendOptions")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_CPY_WRT(backend, t0); PHALCON_ALLOC_ZVAL_MM(t1); phalcon_read_property(&t1, this_ptr, "_frontendObject", sizeof("_frontendObject")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_CPY_WRT(front_end, t1); PHALCON_ALLOC_ZVAL_MM(r0); phalcon_filter_alphanum(r0, key_name); PHALCON_CPY_WRT(sanitize_key, r0); phalcon_update_property_zval(this_ptr, "_lastKey", strlen("_lastKey"), sanitize_key TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(r1); phalcon_array_fetch_string(&r1, backend, "cacheDir", strlen("cacheDir"), PHALCON_NOISY TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(r2); concat_function(r2, r1, sanitize_key TSRMLS_CC); PHALCON_CPY_WRT(cache_file, r2); if (phalcon_file_exists(cache_file TSRMLS_CC) == SUCCESS) { PHALCON_ALLOC_ZVAL_MM(r3); PHALCON_CALL_FUNC(r3, "time", 0x018); PHALCON_CPY_WRT(time, r3); PHALCON_ALLOC_ZVAL_MM(r4); PHALCON_CALL_METHOD(r4, front_end, "getlifetime", PHALCON_NO_CHECK); PHALCON_CPY_WRT(lifetime, r4); PHALCON_ALLOC_ZVAL_MM(r5); sub_function(r5, time, lifetime TSRMLS_CC); PHALCON_ALLOC_ZVAL_MM(r6); PHALCON_CALL_FUNC_PARAMS_1(r6, "filemtime", cache_file, 0x019); PHALCON_INIT_VAR(r7); is_smaller_function(r7, r5, r6 TSRMLS_CC); if (zend_is_true(r7)) { PHALCON_ALLOC_ZVAL_MM(r8); PHALCON_CALL_FUNC_PARAMS_1(r8, "file_get_contents", cache_file, 0x01A); PHALCON_CPY_WRT(cached_content, r8); PHALCON_ALLOC_ZVAL_MM(r9); PHALCON_CALL_METHOD_PARAMS_1(r9, front_end, "afterretrieve", cached_content, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r9); } } PHALCON_MM_RESTORE(); RETURN_NULL(); }