/** * Get the conditions of query * * @return string $query */ PHP_METHOD(Phalcon_Model_Query, getConditions){ zval *controller_front = NULL, *model_manager = NULL, *model_name = NULL; zval *entity = NULL, *meta_data = NULL, *attributes = NULL, *numeric_types = NULL; zval *i = NULL, *parameters = NULL, *conditions = NULL, *value = NULL, *param = NULL; zval *condition = NULL, *index = NULL; zval *t0 = NULL, *t1 = NULL, *t2 = NULL, *t3 = NULL, *t4 = NULL, *t5 = NULL, *t6 = NULL; zval *t7 = 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 *i0 = NULL; zval *a0 = NULL, *a1 = NULL; zval *c0 = NULL; HashTable *ah0, *ah1, *ah2; HashPosition hp0, hp1, hp2; zval **hd; char *hash_index; uint hash_index_len; ulong hash_num; int hash_type; int eval_int; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(t0); phalcon_read_property(&t0, this_ptr, "_manager", sizeof("_manager")-1, PHALCON_NOISY TSRMLS_CC); if (!zend_is_true(t0)) { PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_CALL_STATIC(r0, "phalcon_controller_front", "getinstance"); PHALCON_CPY_WRT(controller_front, r0); PHALCON_ALLOC_ZVAL_MM(r1); PHALCON_CALL_METHOD(r1, controller_front, "getmodelcomponent", PHALCON_NO_CHECK); PHALCON_CPY_WRT(model_manager, r1); PHALCON_CALL_METHOD_PARAMS_1_NORETURN(this_ptr, "setmanager", model_manager, PHALCON_NO_CHECK); } else { PHALCON_ALLOC_ZVAL_MM(t1); phalcon_read_property(&t1, this_ptr, "_manager", sizeof("_manager")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_CPY_WRT(model_manager, t1); } PHALCON_ALLOC_ZVAL_MM(t2); phalcon_read_property(&t2, this_ptr, "_models", sizeof("_models")-1, PHALCON_NOISY TSRMLS_CC); if (phalcon_valid_foreach(t2 TSRMLS_CC)) { ah0 = Z_ARRVAL_P(t2); zend_hash_internal_pointer_reset_ex(ah0, &hp0); fes_a355_0: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto fee_a355_0; } PHALCON_INIT_VAR(model_name); ZVAL_ZVAL(model_name, *hd, 1, 0); PHALCON_INIT_VAR(r2); PHALCON_CALL_METHOD_PARAMS_1(r2, model_manager, "getmodel", model_name, PHALCON_NO_CHECK); PHALCON_CPY_WRT(entity, r2); if (!zend_is_true(entity)) { PHALCON_INIT_VAR(i0); object_init_ex(i0, phalcon_model_exception_ce); PHALCON_INIT_VAR(r3); PHALCON_CONCAT_BOTH(r3, "The model ", model_name, " does not exist"); PHALCON_CALL_METHOD_PARAMS_1_NORETURN(i0, "__construct", r3, PHALCON_CHECK); phalcon_throw_exception(i0 TSRMLS_CC); return; } PHALCON_INIT_VAR(r4); PHALCON_CALL_METHOD(r4, model_manager, "getmetadata", PHALCON_NO_CHECK); PHALCON_CPY_WRT(meta_data, r4); PHALCON_INIT_VAR(r5); PHALCON_CALL_METHOD_PARAMS_1(r5, meta_data, "getattributes", entity, PHALCON_NO_CHECK); PHALCON_CPY_WRT(attributes, r5); PHALCON_INIT_VAR(r6); PHALCON_CALL_METHOD_PARAMS_1(r6, meta_data, "getdatatypesnumeric", entity, PHALCON_NO_CHECK); PHALCON_CPY_WRT(numeric_types, r6); PHALCON_INIT_VAR(t3); phalcon_read_property(&t3, this_ptr, "_data", sizeof("_data")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_INIT_VAR(r7); phalcon_fast_count(r7, t3 TSRMLS_CC); if (zend_is_true(r7)) { PHALCON_INIT_VAR(i); ZVAL_LONG(i, 0); PHALCON_INIT_VAR(a0); array_init(a0); PHALCON_CPY_WRT(parameters, a0); PHALCON_INIT_VAR(a1); array_init(a1); PHALCON_CPY_WRT(conditions, a1); PHALCON_INIT_VAR(t4); phalcon_read_property(&t4, this_ptr, "_data", sizeof("_data")-1, PHALCON_NOISY TSRMLS_CC); if (phalcon_valid_foreach(t4 TSRMLS_CC)) { ah1 = Z_ARRVAL_P(t4); zend_hash_internal_pointer_reset_ex(ah1, &hp1); fes_a355_1: if(zend_hash_get_current_data_ex(ah1, (void**) &hd, &hp1) != SUCCESS){ goto fee_a355_1; } else { PHALCON_INIT_VAR(param); PHALCON_GET_FOREACH_KEY(param, ah1, hp1); } PHALCON_INIT_VAR(value); ZVAL_ZVAL(value, *hd, 1, 0); PHALCON_INIT_VAR(r8); PHALCON_CALL_FUNC_PARAMS_2(r8, "in_array", param, attributes, 0x03E); if (zend_is_true(r8)) { PHALCON_INIT_VAR(t5); ZVAL_STRING(t5, "", 1); PHALCON_INIT_VAR(r9); is_not_identical_function(r9, t5, value TSRMLS_CC); PHALCON_INIT_VAR(r11); PHALCON_CALL_FUNC_PARAMS_1(r11, "is_null", value, 0x041); PHALCON_INIT_VAR(r10); boolean_not_function(r10, r11 TSRMLS_CC); PHALCON_INIT_VAR(r12); phalcon_and_function(r12, r9, r10); if (zend_is_true(r12)) { if (!PHALCON_COMPARE_STRING(value, "@")) { eval_int = phalcon_array_isset(numeric_types, param); if (eval_int) { PHALCON_INIT_VAR(r13); PHALCON_CONCAT_VBOTH(r13, param, " = ?", i); PHALCON_CPY_WRT(condition, r13); phalcon_array_update(¶meters, i, &value, PHALCON_SEPARATE_PLZ, PHALCON_COPY, PHALCON_NO_CTOR TSRMLS_CC); } else { PHALCON_INIT_VAR(r14); PHALCON_CONCAT_VBOTH(r14, param, " LIKE ?", i); PHALCON_CPY_WRT(condition, r14); PHALCON_INIT_VAR(r15); PHALCON_CONCAT_BOTH(r15, "%", value, "%"); phalcon_array_update(¶meters, i, &r15, PHALCON_SEPARATE_PLZ, PHALCON_COPY, PHALCON_NO_CTOR TSRMLS_CC); } phalcon_array_append(&conditions, condition, PHALCON_SEPARATE_PLZ TSRMLS_CC); } } } PHALCON_SEPARATE(i); increment_function(i); zend_hash_move_forward_ex(ah1, &hp1); goto fes_a355_1; fee_a355_1: if(0){} } else { return; } } else { PHALCON_INIT_VAR(t6); phalcon_read_property(&t6, this_ptr, "_parameters", sizeof("_parameters")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_CPY_WRT(parameters, t6); PHALCON_INIT_VAR(t7); phalcon_read_property(&t7, this_ptr, "_conditions", sizeof("_conditions")-1, PHALCON_NOISY TSRMLS_CC); PHALCON_CPY_WRT(conditions, t7); } PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, " AND ", 1); PHALCON_INIT_VAR(r16); phalcon_fast_join(r16, c0, conditions TSRMLS_CC); PHALCON_CPY_WRT(conditions, r16); if (phalcon_valid_foreach(parameters TSRMLS_CC)) { ah2 = Z_ARRVAL_P(parameters); zend_hash_internal_pointer_reset_ex(ah2, &hp2); fes_a355_2: if(zend_hash_get_current_data_ex(ah2, (void**) &hd, &hp2) != SUCCESS){ goto fee_a355_2; } else { PHALCON_INIT_VAR(index); PHALCON_GET_FOREACH_KEY(index, ah2, hp2); } PHALCON_INIT_VAR(value); ZVAL_ZVAL(value, *hd, 1, 0); PHALCON_INIT_VAR(r17); PHALCON_INIT_VAR(r18); PHALCON_CONCAT_LEFT(r18, "?", index); PHALCON_CALL_FUNC_PARAMS_3(r17, "str_replace", r18, value, conditions, 0x003); PHALCON_CPY_WRT(conditions, r17); zend_hash_move_forward_ex(ah2, &hp2); goto fes_a355_2; fee_a355_2: if(0){} } else { return; } if (PHALCON_COMPARE_STRING(conditions, "")) { PHALCON_INIT_VAR(conditions); ZVAL_STRING(conditions, "1=1", 1); } PHALCON_RETURN_CHECK_CTOR(conditions); zend_hash_move_forward_ex(ah0, &hp0); goto fes_a355_0; fee_a355_0: if(0){} } else { return; } PHALCON_MM_RESTORE(); }
/** * Gets information about schema, host and port used by the request * * @return string */ PHP_METHOD(Phalcon_Http_Request, getHttpHost){ zval *scheme = NULL, *server_name = NULL, *name = NULL, *server_port = NULL; zval *port = NULL, *is_std_http = NULL, *is_secure_http = NULL, *is_http_normal = NULL; zval *name_port = NULL; zval *t0 = NULL, *t1 = NULL, *t2 = NULL, *t3 = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL; PHALCON_MM_GROW(); PHALCON_INIT_VAR(scheme); PHALCON_CALL_METHOD(scheme, this_ptr, "getscheme", PH_NO_CHECK); PHALCON_INIT_VAR(server_name); ZVAL_STRING(server_name, "HTTP_SERVER_NAME", 1); PHALCON_INIT_VAR(name); PHALCON_CALL_METHOD_PARAMS_1(name, this_ptr, "getserver", server_name, PH_NO_CHECK); PHALCON_INIT_VAR(server_port); ZVAL_STRING(server_port, "HTTP_SERVER_PORT", 1); PHALCON_INIT_VAR(port); PHALCON_CALL_METHOD_PARAMS_1(port, this_ptr, "getserver", server_port, PH_NO_CHECK); PHALCON_INIT_VAR(t0); ZVAL_STRING(t0, "http", 1); PHALCON_ALLOC_ZVAL_MM(r0); is_equal_function(r0, scheme, t0 TSRMLS_CC); PHALCON_INIT_VAR(t1); ZVAL_LONG(t1, 80); PHALCON_ALLOC_ZVAL_MM(r1); is_equal_function(r1, port, t1 TSRMLS_CC); PHALCON_INIT_VAR(is_std_http); phalcon_and_function(is_std_http, r0, r1); PHALCON_INIT_VAR(t2); ZVAL_STRING(t2, "https", 1); PHALCON_ALLOC_ZVAL_MM(r2); is_equal_function(r2, scheme, t2 TSRMLS_CC); PHALCON_INIT_VAR(t3); ZVAL_LONG(t3, 443); PHALCON_ALLOC_ZVAL_MM(r3); is_equal_function(r3, port, t3 TSRMLS_CC); PHALCON_INIT_VAR(is_secure_http); phalcon_and_function(is_secure_http, r2, r3); PHALCON_INIT_VAR(is_http_normal); ZVAL_BOOL(is_http_normal, zend_is_true(is_std_http) || zend_is_true(is_secure_http)); if (Z_TYPE_P(is_http_normal) == IS_BOOL && Z_BVAL_P(is_http_normal)) { RETURN_CCTOR(name); } PHALCON_INIT_VAR(name_port); PHALCON_CONCAT_VSV(name_port, name, ":", port); RETURN_CTOR(name_port); }
/** * Gets information about schema, host and port used by the request * * @return string */ PHP_METHOD(Phalcon_Http_Request, getHttpHost) { zval host = {}, http_host = {}, scheme = {}, server_name = {}, name = {}, server_port = {}, port = {}, http = {}, standard_port = {}, is_std_name = {}, is_std_port = {}, is_std_http = {}; zval https = {}, secure_port = {}, is_secure_scheme = {}, is_secure_port = {}, is_secure_http = {}; /** * Get the server name from _SERVER['HTTP_HOST'] */ PHALCON_STR(&host, "HTTP_HOST"); PHALCON_CALL_METHODW(&http_host, getThis(), "getserver", &host); if (zend_is_true(&http_host)) { RETURN_CTORW(&http_host); } /** * Get current scheme */ PHALCON_CALL_METHODW(&scheme, getThis(), "getscheme"); /** * Get the server name from _SERVER['SERVER_NAME'] */ PHALCON_STR(&server_name, "SERVER_NAME"); PHALCON_CALL_METHODW(&name, getThis(), "getserver", &server_name); /** * Get the server port from _SERVER['SERVER_PORT'] */ PHALCON_STR(&server_port, "SERVER_PORT"); PHALCON_CALL_METHODW(&port, getThis(), "getserver", &server_port); PHALCON_STR(&http, "http"); ZVAL_LONG(&standard_port, 80); /** * Check if the request is a standard http */ is_equal_function(&is_std_name, &scheme, &http); is_equal_function(&is_std_port, &port, &standard_port); phalcon_and_function(&is_std_http, &is_std_name, &is_std_port); PHALCON_STR(&https, "https"); ZVAL_LONG(&secure_port, 443); /** * Check if the request is a secure http request */ is_equal_function(&is_secure_scheme, &scheme, &https); is_equal_function(&is_secure_port, &port, &secure_port); phalcon_and_function(&is_secure_http, &is_secure_scheme, &is_secure_port); /** * If is standard http we return the server name only */ if (PHALCON_IS_TRUE(&is_std_http)) { RETURN_CTORW(&name); } /** * If is standard secure http we return the server name only */ if (PHALCON_IS_TRUE(&is_secure_http)) { RETURN_CTORW(&name); } PHALCON_CONCAT_VSV(return_value, &name, ":", &port); }
/** * Gets information about schema, host and port used by the request * * @return string */ PHP_METHOD(Phalcon_Http_Request, getHttpHost){ zval *scheme, *server_name, *name, *server_port; zval *port, *http, *standard_port, *is_std_name; zval *is_std_port, *is_std_http, *https, *secure_port; zval *is_secure_scheme, *is_secure_port, *is_secure_http; zval *name_port; PHALCON_MM_GROW(); PHALCON_INIT_VAR(scheme); PHALCON_CALL_METHOD(scheme, this_ptr, "getscheme"); /** * Get the server name from _SERVER['SERVER_NAME'] */ PHALCON_INIT_VAR(server_name); ZVAL_STRING(server_name, "SERVER_NAME", 1); PHALCON_INIT_VAR(name); PHALCON_CALL_METHOD_PARAMS_1(name, this_ptr, "getserver", server_name); /** * Get the server port from _SERVER['SERVER_PORT'] */ PHALCON_INIT_VAR(server_port); ZVAL_STRING(server_port, "SERVER_PORT", 1); PHALCON_INIT_VAR(port); PHALCON_CALL_METHOD_PARAMS_1(port, this_ptr, "getserver", server_port); PHALCON_INIT_VAR(http); ZVAL_STRING(http, "http", 1); PHALCON_INIT_VAR(standard_port); ZVAL_LONG(standard_port, 80); /** * Check if the request is a standard http */ PHALCON_INIT_VAR(is_std_name); is_equal_function(is_std_name, scheme, http TSRMLS_CC); PHALCON_INIT_VAR(is_std_port); is_equal_function(is_std_port, port, standard_port TSRMLS_CC); PHALCON_INIT_VAR(is_std_http); phalcon_and_function(is_std_http, is_std_name, is_std_port); PHALCON_INIT_VAR(https); ZVAL_STRING(https, "https", 1); PHALCON_INIT_VAR(secure_port); ZVAL_LONG(secure_port, 443); /** * Check if the request is a secure http request */ PHALCON_INIT_VAR(is_secure_scheme); is_equal_function(is_secure_scheme, scheme, https TSRMLS_CC); PHALCON_INIT_VAR(is_secure_port); is_equal_function(is_secure_port, port, secure_port TSRMLS_CC); PHALCON_INIT_VAR(is_secure_http); phalcon_and_function(is_secure_http, is_secure_scheme, is_secure_port); /** * If is standard http we return the server name only */ if (PHALCON_IS_TRUE(is_std_http)) { RETURN_CCTOR(name); } /** * If is standard secure http we return the server name only */ if (PHALCON_IS_TRUE(is_secure_http)) { RETURN_CCTOR(name); } PHALCON_INIT_VAR(name_port); PHALCON_CONCAT_VSV(name_port, name, ":", port); RETURN_CTOR(name_port); }
/** * Gets information about schema, host and port used by the request * * @return string */ PHP_METHOD(Phalcon_Request, getHttpHost){ zval *scheme = NULL, *name = NULL, *port = 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 *c0 = NULL, *c1 = NULL; zval *t0 = NULL, *t1 = NULL, *t2 = NULL, *t3 = NULL; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(r0); PHALCON_CALL_METHOD(r0, this_ptr, "getscheme", PHALCON_NO_CHECK); PHALCON_CPY_WRT(scheme, r0); PHALCON_ALLOC_ZVAL_MM(r1); PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, "HTTP_SERVER_NAME", 1); PHALCON_CALL_METHOD_PARAMS_1(r1, this_ptr, "getserver", c0, PHALCON_NO_CHECK); PHALCON_CPY_WRT(name, r1); PHALCON_ALLOC_ZVAL_MM(r2); PHALCON_INIT_VAR(c1); ZVAL_STRING(c1, "HTTP_SERVER_PORT", 1); PHALCON_CALL_METHOD_PARAMS_1(r2, this_ptr, "getserver", c1, PHALCON_NO_CHECK); PHALCON_CPY_WRT(port, r2); PHALCON_INIT_VAR(t0); ZVAL_STRING(t0, "http", 1); PHALCON_ALLOC_ZVAL_MM(r3); is_equal_function(r3, scheme, t0 TSRMLS_CC); PHALCON_INIT_VAR(t1); ZVAL_LONG(t1, 80); PHALCON_ALLOC_ZVAL_MM(r4); is_equal_function(r4, port, t1 TSRMLS_CC); PHALCON_INIT_VAR(r5); phalcon_and_function(r5, r3, r4); PHALCON_INIT_VAR(t2); ZVAL_STRING(t2, "https", 1); PHALCON_ALLOC_ZVAL_MM(r6); is_equal_function(r6, scheme, t2 TSRMLS_CC); PHALCON_INIT_VAR(t3); ZVAL_LONG(t3, 443); PHALCON_ALLOC_ZVAL_MM(r7); is_equal_function(r7, port, t3 TSRMLS_CC); PHALCON_INIT_VAR(r8); phalcon_and_function(r8, r6, r7); PHALCON_INIT_VAR(r9); ZVAL_BOOL(r9, zend_is_true(r5) || zend_is_true(r8)); if (zend_is_true(r9)) { PHALCON_RETURN_CHECK_CTOR(name); } PHALCON_ALLOC_ZVAL_MM(r10); PHALCON_CONCAT_VBOTH(r10, name, ":", port); PHALCON_RETURN_CTOR(r10); }